私は、約 1 か月間作業を開始しようとしている Keda の展開を行っています。現時点では、私のスケーラーは次のようになります。
apiVersion: keda.k8s.io/v1alpha1
kind: ScaledObject
metadata:
name: {service-name}-scaler
spec:
scaleTargetRef:
deploymentName: {service-name}
containerName: {service-name}
pollingInterval: 30
cooldownPeriod: 600
minReplicaCount: 0
maxReplicaCount: 10
triggers:
- type: aws-sqs-queue
authenticationRef:
name: keda-trigger-authentication
metadata:
queueURL: https://sqs.ap-northeast-1.amazonaws.com/{AWS ID}/{Queue-name}
queueLength: "1"
awsRegion: "ap-northeast-1"
identityOwner: pod
関連するトリガー認証とシークレットは次のとおりです。
apiVersion: v1
kind: Secret
metadata:
name: keda-secrets
data:
AWS_ACCESS_KEY_ID: {base64-encoded-string}
AWS_SECRET_ACCESS_KEY: {base64-encoded-string}
KEDA_ROLE_ARN: {base64-encoded-string}
---
apiVersion: keda.k8s.io/v1alpha1
kind: TriggerAuthentication
metadata:
name: keda-trigger-authentication
spec:
env:
- parameter: awsRegion
name: AWS_REGION
- parameter: awsAccessKeyID
name: AWS_ACCESS_KEY_ID
- parameter: awsSecretAccessKey
name: AWS_SECRET_ACCESS_KEY
- parameter: awsRoleArn
name: KEDA_ROLE_ARN
secretTargetRef:
- parameter: awsRoleArn
name: keda-secrets
key: KEDA_ROLE_ARN
KEDA_ROLE_ARN
ここで値が繰り返されていることを理解しています。デバッグ目的で両方を残しました。これを展開する順序は次のとおりです。
- 共通の環境変数をインストールします (これは
AWS_ACCESS_KEY_ID
、AWS_SECRET_ACCESS_KEY
とのKEDA_ROLE_ARN
値が保存される場所です。AWS_ACCESS_KEY_ID
との値はファイルにそれぞれ とAWS_SECRET_ACCESS_KEY
としてリストされており、コンテナーで適切な値を想定します。これらはデバッグ目的で複製されます。使用することをお勧めします。 Helm を使用して Keda ポッドをインストールするAWS_ACCESS_KEY_ID_ASSUME
AWS_SECRET_ACCESS_KEY_ASSUME
- keda-secrets シークレットと keda-trigger-authentication トリガー認証をデプロイする
- スケーリングする必要があるコンテナーをデプロイします。これは、
AWS_ACCESS_KEY_ID_ASSUME
値がの名前を想定する場所でありAWS_ACCESS_KEY_ID
、値がの名前AWS_SECRET_ACCESS_KEY_ASSUME
を想定しAWS_SECRET_ACCESS_KEY
、AWS_REGION
値が定義されている場所です。 - スケーリングされたオブジェクトがデプロイされます
なんらかの理由で、スケーラーがチェーンに認証情報プロバイダーが存在しないことを示すスケーリングを試みると、AWS からエラーが発生し続けます。AWS クレデンシャルが送信されていないようです。ここで何が間違っていますか?