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
보안이 포함된 클러스터 트리거 인증 예
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
토큰이 있는 트리거 인증의 예
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
환경 변수를 사용한 인증 트리거 예
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
추가 리소스
- OpenShift Container Platform 보안에 대한 자세한 내용은 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>