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

1
スケーリングするオブジェクトの namespace を指定します。
2
このトリガー認証では、メトリクスエンドポイントに接続するときに、認可にシークレットを使用することを指定します。
3
シークレットを使用して提供する認証パラメーターを指定します。
4
使用するシークレットの名前を指定します。
5
指定されたパラメーターで使用するシークレットのキーを指定します。

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

1
クラスタートリガー認証では namespace が使用されないことに注意してください。
2
このトリガー認証では、メトリクスエンドポイントに接続するときに、認可にシークレットを使用することを指定します。
3
シークレットを使用して提供する認証パラメーターを指定します。
4
使用するシークレットの名前を指定します。
5
指定されたパラメーターで使用するシークレットのキーを指定します。

認証局 (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...

1
メトリクスエンドポイントの認証用の TLS CA 証明書を指定します。値は Base64 でエンコードされている必要があります。
2
TLS クライアント認証用の TLS 証明書と鍵を指定します。値は Base64 でエンコードされている必要があります。

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

1
スケーリングするオブジェクトの namespace を指定します。
2
このトリガー認証では、メトリクスエンドポイントに接続するときに、認可にシークレットを使用することを指定します。
3
使用する認証の種類を指定します。
4
使用するシークレットの名前を指定します。
5
指定されたパラメーターで使用するシークレットのキーを指定します。
6
メトリクスエンドポイントに接続するときに、カスタム CA の認証パラメーターを指定します。
7
使用するシークレットの名前を指定します。
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

1
スケーリングするオブジェクトの namespace を指定します。
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
スケーリングするオブジェクトの namespace を指定します。
2
このトリガー認証では、メトリクスエンドポイントに接続するときに、認可に環境変数を使用することを指定します。
3
この変数で設定するパラメーターを指定します。
4
環境変数の名前を指定します。
5
オプション: 認証が必要なコンテナーを指定します。コンテナーは、スケーリングされたオブジェクトの scaleTargetRef によって参照されるものと同じリソースにある必要があります。

Pod 認証プロバイダーを使用したトリガー認証の例

kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
  name: pod-id-triggerauthentication
  namespace: my-namespace 1
spec:
  podIdentity: 2
    provider: aws-eks 3

1
スケーリングするオブジェクトの namespace を指定します。
2
このトリガー認証では、メトリクスエンドポイントに接続するときに、プラットフォームネイティブの Pod 認証を使用することを指定します。
3
Pod ID を指定します。サポートされている値は、noneazuregcpaws-eks、または aws-kiam です。デフォルト値は none です。

関連情報

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>

手順

  1. TriggerAuthentication または ClusterTriggerAuthentication オブジェクトを作成します。

    1. オブジェクトを定義する 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

    2. TriggerAuthentication オブジェクトを作成します。

      $ oc create -f <filename>.yaml
  2. トリガー認証を使用する ScaledObject YAML ファイルを作成または編集します。

    1. 次のコマンドを実行して、オブジェクトを定義する 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 を指定します。
    2. 次のコマンドを実行して、スケーリングされたオブジェクトを作成します。

      $ oc apply -f <filename>
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.