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


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

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

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

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

기본 인증을 위한 시크릿 예

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

1
트리거 인증에 제공할 사용자 이름 및 암호입니다. 데이터 스탠자의 값은 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
지정된 매개변수와 함께 사용할 시크릿의 키를 지정합니다.

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 인증서를 지정합니다. 값은 base-64로 인코딩되어야 합니다.
2
TLS 클라이언트 인증을 위한 TLS 인증서 및 키를 지정합니다. 값은 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

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
전달자 인증에 사용할 전달자 토큰을 지정합니다. 데이터 스탠자의 값은 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 에서 참조하는 것과 동일한 리소스에 있어야 합니다.

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,gcp,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.