3.5. カスタムメトリクスオートスケーラートリガー認証について
トリガー認証を使用すると、関連付けられたコンテナーで使用できるスケーリングされたオブジェクトまたはスケーリングされたジョブに認証情報を含めることができます。トリガー認証を使用して、Red Hat OpenShift Service on AWS シークレット、プラットフォームネイティブの Pod 認証メカニズム、環境変数などを渡すことができます。
スケーリングするオブジェクトと同じ namespace に TriggerAuthentication
オブジェクトを定義します。そのトリガー認証は、その namespace 内のオブジェクトによってのみ使用できます。
または、複数の namespace のオブジェクト間で認証情報を共有するには、すべての namespace で使用できる ClusterTriggerAuthentication
オブジェクトを作成できます。
トリガー認証とクラスタートリガー認証は同じ設定を使用します。ただし、クラスタートリガー認証では、スケーリングされたオブジェクトの認証参照に追加の kind
パラメーターが必要です。
Basic 認証のシークレットの例
apiVersion: v1
kind: Secret
metadata:
name: my-basic-secret
namespace: default
data:
username: "dXNlcm5hbWU=" 1
password: "cGFzc3dvcmQ="
- 1
- トリガー認証に提供するユーザー名とパスワード。
data
スタンザ内の値は、Base64 でエンコードされている必要があります。
Basic 認証のシークレットを使用したトリガー認証の例
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
Basic 認証のシークレットを使用したクラスタートリガー認証の例
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
認証局 (CA) の詳細を含むシークレットの例
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...
CA の詳細用のシークレットを使用したトリガー認証の例
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
ベアラートークンを使用したシークレットの例
apiVersion: v1
kind: Secret
metadata:
name: my-secret
namespace: my-namespace
data:
bearerToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV" 1
- 1
- ベアラー認証で使用するベアラートークンを指定します。
data
スタンザ内の値は、Base64 でエンコードされている必要があります。
ベアラートークンを使用したトリガー認証の例
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
環境変数を使用したトリガー認証の例
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
Pod 認証プロバイダーを使用したトリガー認証の例
kind: TriggerAuthentication apiVersion: keda.sh/v1alpha1 metadata: name: pod-id-triggerauthentication namespace: my-namespace 1 spec: podIdentity: 2 provider: aws-eks 3
関連情報
- Red Hat OpenShift Service on AWS のシークレットの詳細は、Pod への機密性の高いデータの提供 を参照してください。
3.5.1. トリガー認証の使用
トリガー認証とクラスタートリガー認証は、カスタムリソースを使用して認証を作成し、スケーリングされたオブジェクトまたはスケーリングされたジョブへの参照を追加することで使用します。
前提条件
- Custom Metrics Autoscaler Operator をインストールしている。
シークレットを使用している場合は、
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
クラスタートリガー認証を使用したスケーリングされたオブジェクトの例
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
次のコマンドを実行して、スケーリングされたオブジェクトを作成します。
$ oc apply -f <filename>