首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Keda中验证AWS SQS定标器

在Keda中验证AWS SQS定标器
EN

Stack Overflow用户
提问于 2020-06-11 08:40:36
回答 1查看 1.1K关注 0票数 0

我有一个Keda部署,我已经努力工作了大约一个月了。目前,我的定价者看起来是这样的:

代码语言:javascript
复制
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

关联的触发器身份验证和秘密是:

代码语言:javascript
复制
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_KEYKEDA_ROLE_ARN值的地方。AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY值在文件中分别列为AWS_ACCESS_KEY_ID_ASSUMEAWS_SECRET_ACCESS_KEY_ASSUME,并将在容器上假定它们的适当值。同样,为了调试目的,也会复制这些内容。我宁愿使用这些价值,而不是单独的秘密。安装带有Helm
  2. 的Keda荚,部署keda-

秘密和keda触发器身份验证触发器

  1. ,这是应该缩放的容器。在这里,AWS_ACCESS_KEY_ID_ASSUME值将以AWS_ACCESS_KEY_ID的名称命名,AWS_SECRET_ACCESS_KEY_ASSUME值将以AWS_SECRET_ACCESS_KEY的名称命名,并定义AWS_REGION值。

由于某些原因,我一直从AWS那里得到一个错误,当标量者试图缩放时,它说链中没有凭据提供者。似乎没有发送AWS凭据。我在这里做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-21 05:37:43

我将向您展示两种基于AWS SQS成功扩展部署的方法。

第一种方式:使用连接到节点的AWS角色

如果您的IAM角色(节点角色)具有访问SQS的权限,那么访问SQS就更容易了,您只需将identityOwner: pod字段更改为identityOwner: operator,这样KEDA就可以使用节点角色访问AWS。

带有SQS触发器的示例ScaledObject文件

代码语言:javascript
复制
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: aws-sqs-queue-scaledobject
  namespace: default
spec:
  scaleTargetRef:
    name: test-deployment
  minReplicaCount: 0
  maxReplicaCount: 2
  triggers:
  - type: aws-sqs-queue
    metadata:
      queueURL: https://sqs.us-east-1.amazonaws.com/3243234432432/Queue
      queueLength: "5"
      awsRegion: "us-east-1"
      identityOwner: operator

第二种方式:使用IAM用户

在这种方法中,我们需要创建以下对象

Kubernetes.

  • Create

  • 在AWS中创建IAM用户,在Kubernetes的Kubernetes.

  • Create scaledObject中在

  • 中创建秘密。

创建IAM用户并向此IAM用户授予SQS权限。

首先使用base64对IAM用户访问密钥和秘密密钥进行编码,这是创建Kubernetes秘密时所必需的。

创建秘密

代码语言:javascript
复制
apiVersion: v1
kind: Secret
metadata:
  name: test-secrets
  namespace: default
data:
  AWS_ACCESS_KEY_ID: <base64-encoded-key>
  AWS_SECRET_ACCESS_KEY: <base64-encoded-secret-key>

创建TriggerAuthentication,这将在scaledObject中使用

代码语言:javascript
复制
apiVersion: keda.sh/v1alpha1
kind: TriggerAuthentication
metadata:
  name: keda-trigger-auth-aws-credentials
  namespace: default
spec:
  secretTargetRef:
  - parameter: awsAccessKeyID     # Required.
    name: test-secrets            # Required.
    key: AWS_ACCESS_KEY_ID        # Required.
  - parameter: awsSecretAccessKey # Required.
    name: test-secrets            # Required.
    key: AWS_SECRET_ACCESS_KEY    # Required.

创建scaledObject来映射您希望基于SQS触发器进行扩展的部署的keda

代码语言:javascript
复制
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: aws-sqs-queue-scaledobject
  namespace: default
spec:
  scaleTargetRef:
    name: test-deployment
  minReplicaCount: 0
  maxReplicaCount: 2
  triggers:
  - type: aws-sqs-queue
    authenticationRef:
      name: keda-trigger-auth-aws-credentials
    metadata:
      queueURL: https://sqs.us-east-1.amazonaws.com/012345678912/Queue
      queueLength: "5"
      awsRegion: "us-east-1"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62320364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档