apiVersion: v1
kind: Secret
metadata:
name: my-basic-secret
namespace: default
data:
username: "dXNlcm5hbWU=" (1)
password: "cGFzc3dvcmQ="
触发器身份验证允许您在缩放对象或缩放作业中包含身份验证信息,这些信息可被关联的容器使用。您可以使用触发器身份验证来传递 OpenShift Dedicated 密钥、平台原生 Pod 身份验证机制、环境变量等。
您在与要缩放的对象相同的命名空间中定义 `TriggerAuthentication` 对象。该触发器身份验证只能由该命名空间中的对象使用。
或者,要在多个命名空间中的对象之间共享凭据,您可以创建一个 `ClusterTriggerAuthentication` 对象,该对象可以在所有命名空间中使用。
触发器身份验证和集群触发器身份验证使用相同的配置。但是,集群触发器身份验证需要在缩放对象的认证引用中添加一个额外的 `kind` 参数。
apiVersion: v1
kind: Secret
metadata:
name: my-basic-secret
namespace: default
data:
username: "dXNlcm5hbWU=" (1)
password: "cGFzc3dvcmQ="
1 | 要提供给触发器身份验证的用户名和密码。`data` 部分中的值必须是 base-64 编码的。 |
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: secret-triggerauthentication
namespace: my-namespace (1)
spec:
secretTargetRef: (2)
- parameter: username (3)
name: my-basic-secret (4)
key: username (5)
- parameter: password
name: my-basic-secret
key: password
1 | 指定要缩放的对象的命名空间。 |
2 | 指定此触发器身份验证在连接到指标端点时使用密钥进行授权。 |
3 | 指定要使用密钥提供的身份验证参数。 |
4 | 指定要使用的密钥名称。 |
5 | 指定要与指定参数一起使用的密钥中的密钥。 |
kind: ClusterTriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata: (1)
name: secret-cluster-triggerauthentication
spec:
secretTargetRef: (2)
- parameter: username (3)
name: my-basic-secret (4)
key: username (5)
- parameter: password
name: my-basic-secret
key: password
1 | 请注意,集群触发器身份验证不使用命名空间。 |
2 | 指定此触发器身份验证在连接到指标端点时使用密钥进行授权。 |
3 | 指定要使用密钥提供的身份验证参数。 |
4 | 指定要使用的密钥名称。 |
5 | 指定要与指定参数一起使用的密钥中的密钥。 |
apiVersion: v1
kind: Secret
metadata:
name: my-secret
namespace: my-namespace
data:
ca-cert.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0... (1)
client-cert.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0... (2)
client-key.pem: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0t...
1 | 指定用于验证指标端点的 TLS CA 证书。该值必须是 base-64 编码的。 |
2 | 指定用于 TLS 客户端身份验证的 TLS 证书和密钥。这些值必须是 base-64 编码的。 |
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: secret-triggerauthentication
namespace: my-namespace (1)
spec:
secretTargetRef: (2)
- parameter: key (3)
name: my-secret (4)
key: client-key.pem (5)
- parameter: ca (6)
name: my-secret (7)
key: ca-cert.pem (8)
1 | 指定要缩放的对象的命名空间。 |
2 | 指定此触发器身份验证在连接到指标端点时使用密钥进行授权。 |
3 | 指定要使用的身份验证类型。 |
4 | 指定要使用的密钥名称。 |
5 | 指定要与指定参数一起使用的密钥中的密钥。 |
6 | 指定连接到指标端点时自定义 CA 的身份验证参数。 |
7 | 指定要使用的密钥名称。 |
8 | 指定要与指定参数一起使用的密钥中的密钥。 |
apiVersion: v1
kind: Secret
metadata:
name: my-secret
namespace: my-namespace
data:
bearerToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV" (1)
1 | 指定要与 bearer 身份验证一起使用的 bearer 令牌。`data` 部分中的值必须是 base-64 编码的。 |
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: token-triggerauthentication
namespace: my-namespace (1)
spec:
secretTargetRef: (2)
- parameter: bearerToken (3)
name: my-secret (4)
key: bearerToken (5)
1 | 指定要缩放的对象的命名空间。 |
2 | 指定此触发器身份验证在连接到指标端点时使用密钥进行授权。 |
3 | 指定要使用的身份验证类型。 |
4 | 指定要使用的密钥名称。 |
5 | 指定要与指定参数一起使用的令牌中的密钥。 |
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: env-var-triggerauthentication
namespace: my-namespace (1)
spec:
env: (2)
- parameter: access_key (3)
name: ACCESS_KEY (4)
containerName: my-container (5)
1 | 指定要缩放的对象的命名空间。 |
2 | 指定此触发器身份验证在连接到指标端点时使用环境变量进行授权。 |
3 | 指定要使用此变量设置的参数。 |
4 | 指定环境变量的名称。 |
5 | 可选:指定需要身份验证的容器。该容器必须与缩放对象中 `scaleTargetRef` 引用的资源位于同一资源中。 |
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: pod-id-triggerauthentication
namespace: my-namespace (1)
spec:
podIdentity: (2)
provider: aws-eks (3)
1 | 指定要缩放的对象的命名空间。 |
2 | 指定此触发器身份验证在连接到指标端点时使用平台原生 Pod 身份验证。 |
3 | 指定 Pod 身份。支持的值为 `none`、`azure`、`gcp`、`aws-eks` 或 `aws-kiam`。默认为 `none`。 |
有关 OpenShift Dedicated 密钥的信息,请参见 向 Pod 提供敏感数据。
您可以使用自定义资源创建身份验证,然后将引用添加到缩放对象或缩放作业来使用触发器身份验证和集群触发器身份验证。
必须安装自定义指标自动缩放运算符。
如果使用密钥,则必须存在Secret
对象,例如
apiVersion: v1
kind: Secret
metadata:
name: my-secret
data:
user-name: <base64_USER_NAME>
password: <base64_USER_PASSWORD>
创建TriggerAuthentication
或ClusterTriggerAuthentication
对象。
创建一个定义该对象的YAML文件。
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: prom-triggerauthentication
namespace: my-namespace
spec:
secretTargetRef:
- parameter: user-name
name: my-secret
key: USER_NAME
- parameter: password
name: my-secret
key: USER_PASSWORD
创建TriggerAuthentication
对象。
$ oc create -f <filename>.yaml
创建或编辑使用触发器身份验证的ScaledObject
YAML文件。
通过运行以下命令创建一个定义该对象的YAML文件。
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: scaledobject
namespace: my-namespace
spec:
scaleTargetRef:
name: example-deployment
maxReplicaCount: 100
minReplicaCount: 0
pollingInterval: 30
triggers:
- type: prometheus
metadata:
serverAddress: https://thanos-querier.openshift-monitoring.svc.cluster.local:9092
namespace: kedatest # replace <NAMESPACE>
metricName: http_requests_total
threshold: '5'
query: sum(rate(http_requests_total{job="test-app"}[1m]))
authModes: "basic"
authenticationRef:
name: prom-triggerauthentication (1)
kind: TriggerAuthentication (2)
1 | 指定您的触发器身份验证对象的名称。 |
2 | 指定TriggerAuthentication 。TriggerAuthentication 是默认值。 |
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: scaledobject
namespace: my-namespace
spec:
scaleTargetRef:
name: example-deployment
maxReplicaCount: 100
minReplicaCount: 0
pollingInterval: 30
triggers:
- type: prometheus
metadata:
serverAddress: https://thanos-querier.openshift-monitoring.svc.cluster.local:9092
namespace: kedatest # replace <NAMESPACE>
metricName: http_requests_total
threshold: '5'
query: sum(rate(http_requests_total{job="test-app"}[1m]))
authModes: "basic"
authenticationRef:
name: prom-cluster-triggerauthentication (1)
kind: ClusterTriggerAuthentication (2)
1 | 指定您的触发器身份验证对象的名称。 |
2 | 指定ClusterTriggerAuthentication 。 |
通过运行以下命令创建缩放对象。
$ oc apply -f <filename>