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


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

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

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

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

바인딩된 서비스 계정 토큰을 사용하는 트리거 인증의 예

kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
  name: secret-triggerauthentication
  namespace: my-namespace 
1

spec:
  boundServiceAccountToken: 
2

    - parameter: bearerToken
      serviceAccountName: thanos 
3
Copy to Clipboard Toggle word wrap

1
스케일링할 오브젝트의 네임스페이스를 지정합니다.
2
이 트리거 인증이 메트릭 끝점에 연결할 때 권한 부여에 바인딩된 서비스 계정 토큰을 사용하도록 지정합니다.
3
사용할 서비스 계정의 이름을 지정합니다.

바인딩된 서비스 계정 토큰을 사용하는 클러스터 트리거 인증의 예

kind: ClusterTriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
  name: bound-service-account-token-triggerauthentication 
1

spec:
  boundServiceAccountToken: 
2

    - parameter: bearerToken
      serviceAccountName: thanos 
3
Copy to Clipboard Toggle word wrap

1
스케일링할 오브젝트의 네임스페이스를 지정합니다.
2
이 클러스터 트리거 인증이 메트릭 끝점에 연결할 때 권한 부여에 바인딩된 서비스 계정 토큰을 사용하도록 지정합니다.
3
사용할 서비스 계정의 이름을 지정합니다.

기본 인증에 보안을 사용하는 트리거 인증의 예

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
Copy to Clipboard Toggle word wrap

1
스케일링할 오브젝트의 네임스페이스를 지정합니다.
2
이 트리거 인증이 메트릭 끝점에 연결할 때 권한 부여에 시크릿을 사용하도록 지정합니다.
3
보안을 사용하여 제공할 인증 매개변수를 지정합니다.
4
사용할 시크릿 이름을 지정합니다. 기본 인증은 다음 예제 시크릿을 참조하십시오.
5
지정된 매개변수와 함께 사용할 시크릿의 키를 지정합니다.

기본 인증을 위한 시크릿 예

apiVersion: v1
kind: Secret
metadata:
  name: my-basic-secret
  namespace: default
data:
  username: "dXNlcm5hbWU=" 
1

  password: "cGFzc3dvcmQ="
Copy to Clipboard Toggle word wrap

1
트리거 인증에 제공할 사용자 이름 및 암호입니다. data 스탠자의 값은 base-64로 인코딩되어야 합니다.

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
Copy to Clipboard Toggle word wrap

1
스케일링할 오브젝트의 네임스페이스를 지정합니다.
2
이 트리거 인증이 메트릭 끝점에 연결할 때 권한 부여에 시크릿을 사용하도록 지정합니다.
3
사용할 인증 유형을 지정합니다.
4
사용할 시크릿 이름을 지정합니다.
5
지정된 매개변수와 함께 사용할 시크릿의 키를 지정합니다.
6
메트릭 끝점에 연결할 때 사용자 정의 CA의 인증 매개 변수를 지정합니다.
7
사용할 시크릿 이름을 지정합니다. CA(인증 기관) 세부 정보가 포함된 다음 예제 시크릿을 참조하십시오.
8
지정된 매개변수와 함께 사용할 시크릿의 키를 지정합니다.

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...
Copy to Clipboard Toggle word wrap

1
지표 끝점 인증을 위한 TLS CA 인증서를 지정합니다. 값은 base-64로 인코딩되어야 합니다.
2
TLS 클라이언트 인증을 위한 TLS 인증서 및 키를 지정합니다. 값은 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
Copy to Clipboard Toggle word wrap

1
스케일링할 오브젝트의 네임스페이스를 지정합니다.
2
이 트리거 인증이 메트릭 끝점에 연결할 때 권한 부여에 시크릿을 사용하도록 지정합니다.
3
사용할 인증 유형을 지정합니다.
4
사용할 시크릿 이름을 지정합니다. 전달자 토큰은 다음 예제 시크릿을 참조하십시오.
5
지정된 매개변수와 함께 사용할 토큰의 키를 지정합니다.

전달자 토큰의 시크릿 예

apiVersion: v1
kind: Secret
metadata:
  name: my-secret
  namespace: my-namespace
data:
  bearerToken: "<bearer_token>" 
1
Copy to Clipboard Toggle word wrap

1
전달자 인증에 사용할 전달자 토큰을 지정합니다. 값은 base-64로 인코딩되어야 합니다.

환경 변수를 사용하는 트리거 인증의 예

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
Copy to Clipboard Toggle word wrap

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
Copy to Clipboard Toggle word wrap

1
스케일링할 오브젝트의 네임스페이스를 지정합니다.
2
메트릭 끝점에 연결할 때 이 트리거 인증이 플랫폼 네이티브 Pod 인증을 사용하도록 지정합니다.
3
Pod ID를 지정합니다. 지원되는 값은 none,azure,gcp,aws-eks 또는 aws-kiam 입니다. 기본값은 none 입니다.

3.5.1. 트리거 인증 사용

사용자 지정 리소스를 사용하여 인증을 생성한 다음 확장된 오브젝트 또는 확장 작업에 대한 참조를 추가하여 트리거 인증 및 클러스터 트리거 인증을 사용합니다.

사전 요구 사항

  • Custom Metrics Autoscaler Operator가 설치되어 있어야 합니다.
  • 바인딩된 서비스 계정 토큰을 사용하는 경우 서비스 계정이 있어야 합니다.
  • 바인딩된 서비스 계정 토큰을 사용하는 경우 Custom Metrics Autoscaler Operator에서 서비스 계정 토큰을 요청할 수 있는 RBAC(역할 기반 액세스 제어) 오브젝트가 있어야 합니다.

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: keda-operator-token-creator
      namespace: <namespace_name> 
    1
    
    rules:
    - apiGroups:
      - ""
      resources:
      - serviceaccounts/token
      verbs:
      - create
      resourceNames:
      - thanos 
    2
    
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: keda-operator-token-creator-binding
      namespace: <namespace_name> 
    3
    
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: keda-operator-token-creator
    subjects:
    - kind: ServiceAccount
      name: keda-operator
      namespace: openshift-keda
    Copy to Clipboard Toggle word wrap
    1
    서비스 계정의 네임스페이스를 지정합니다.
    2
    서비스 계정의 이름을 지정합니다.
    3
    서비스 계정의 네임스페이스를 지정합니다.
  • 보안을 사용하는 경우 Secret 오브젝트가 있어야 합니다.

프로세스

  1. TriggerAuthentication 또는 ClusterTriggerAuthentication 오브젝트를 생성합니다.

    1. 오브젝트를 정의하는 YAML 파일을 생성합니다.

      바인딩된 서비스 계정 토큰을 사용한 트리거 인증의 예

      kind: TriggerAuthentication
      apiVersion: keda.sh/v1alpha1
      metadata:
        name: prom-triggerauthentication
        namespace: my-namespace 
      1
      
        spec:
        boundServiceAccountToken: 
      2
      
          - parameter: token
            serviceAccountName: thanos 
      3
      Copy to Clipboard Toggle word wrap

      1
      스케일링할 오브젝트의 네임스페이스를 지정합니다.
      2
      이 트리거 인증이 메트릭 끝점에 연결할 때 권한 부여에 바인딩된 서비스 계정 토큰을 사용하도록 지정합니다.
      3
      사용할 서비스 계정의 이름을 지정합니다.
    2. TriggerAuthentication 오브젝트를 생성합니다.

      $ oc create -f <filename>.yaml
      Copy to Clipboard Toggle word wrap
  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
      Copy to Clipboard Toggle word wrap

      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
      Copy to Clipboard Toggle word wrap

      1
      트리거 인증 오브젝트의 이름을 지정합니다.
      2
      ClusterTriggerAuthentication 을 지정합니다.
    2. 다음 명령을 실행하여 확장 오브젝트를 생성합니다.

      $ oc apply -f <filename>
      Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

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

Theme

© 2025 Red Hat