3.5. 사용자 정의 메트릭 자동 스케일러가 인증 트리거 이해


트리거 인증을 사용하면 확장된 오브젝트 또는 관련 컨테이너에서 사용할 수 있는 스케일링된 작업에 인증 정보를 포함할 수 있습니다. 트리거 인증을 사용하여 OpenShift Container Platform 보안, 플랫폼 네이티브 Pod 인증 메커니즘, 환경 변수 등을 전달할 수 있습니다.

스케일링하려는 오브젝트와 동일한 네임스페이스에 TriggerAuthentication 오브젝트를 정의합니다. 이 트리거 인증은 해당 네임스페이스의 오브젝트에서만 사용할 수 있습니다.

또는 여러 네임스페이스의 오브젝트 간에 인증 정보를 공유하려면 모든 네임스페이스에서 사용할 수 있는 ClusterTriggerAuthentication 오브젝트를 생성할 수 있습니다.

인증 트리거 및 클러스터 트리거 인증은 동일한 구성을 사용합니다. 그러나 클러스터 트리거 인증에는 스케일링된 오브젝트의 인증 참조에 추가 kind 매개변수가 필요합니다.

보안이 포함된 인증 트리거 예

kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
  name: secret-triggerauthentication
  namespace: my-namespace 1
spec:
  secretTargetRef: 2
  - parameter: user-name 3
    name: my-secret 4
    key: USER_NAME 5
  - parameter: password
    name: my-secret
    key: USER_PASSWORD

1
스케일링할 오브젝트의 네임스페이스를 지정합니다.
2
이 트리거 인증이 권한 부여에 보안을 사용하도록 지정합니다.
3
보안을 사용하여 제공할 인증 매개 변수를 지정합니다.
4
사용할 시크릿의 이름을 지정합니다.
5
지정된 매개변수와 함께 사용할 시크릿의 키를 지정합니다.

보안이 포함된 클러스터 트리거 인증 예

kind: ClusterTriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata: 1
  name: secret-cluster-triggerauthentication
spec:
  secretTargetRef: 2
  - parameter: user-name 3
    name: secret-name 4
    key: USER_NAME 5
  - parameter: user-password
    name: secret-name
    key: USER_PASSWORD

1
클러스터 트리거 인증에 네임스페이스가 사용되지 않습니다.
2
이 트리거 인증이 권한 부여에 보안을 사용하도록 지정합니다.
3
보안을 사용하여 제공할 인증 매개 변수를 지정합니다.
4
사용할 시크릿의 이름을 지정합니다.
5
지정된 매개변수와 함께 사용할 시크릿의 키를 지정합니다.

토큰이 있는 트리거 인증의 예

kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
  name: token-triggerauthentication
  namespace: my-namespace 1
spec:
  secretTargetRef: 2
  - parameter: bearerToken 3
    name: my-token-2vzfq 4
    key: token 5
  - parameter: ca
    name: my-token-2vzfq
    key: ca.crt

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 에서 참조하는 리소스와 동일한 리소스에 있어야 합니다.

Pod 인증 공급자를 사용한 트리거 인증 예

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 ID를 지정합니다. 지원되는 값은 none,azure,aws-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은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.