0

私は、約 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ここで値が繰り返されていることを理解しています。デバッグ目的で両方を残しました。これを展開する順序は次のとおりです。

  1. 共通の環境変数をインストールします (これはAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYとのKEDA_ROLE_ARN値が保存される場所です。AWS_ACCESS_KEY_IDとの値はファイルにそれぞれ とAWS_SECRET_ACCESS_KEYとしてリストされており、コンテナーで適切な値を想定します。これらはデバッグ目的で複製されます。使用することをお勧めします。 Helm を使用して Keda ポッドをインストールするAWS_ACCESS_KEY_ID_ASSUMEAWS_SECRET_ACCESS_KEY_ASSUME
  2. keda-secrets シークレットと keda-trigger-authentication トリガー認証をデプロイする
  3. スケーリングする必要があるコンテナーをデプロイします。これは、AWS_ACCESS_KEY_ID_ASSUME値がの名前を想定する場所でありAWS_ACCESS_KEY_ID、値がの名前AWS_SECRET_ACCESS_KEY_ASSUMEを想定しAWS_SECRET_ACCESS_KEYAWS_REGION値が定義されている場所です。
  4. スケーリングされたオブジェクトがデプロイされます

なんらかの理由で、スケーラーがチェーンに認証情報プロバイダーが存在しないことを示すスケーリングを試みると、AWS からエラーが発生し続けます。AWS クレデンシャルが送信されていないようです。ここで何が間違っていますか?

4

1 に答える 1