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 <file-name>.yaml
scaled
Object
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: - authenticationRef: 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: 1 name: prom-triggerauthentication metadata: name: prom-triggerauthentication type: object - authenticationRef: 2 name: prom-cluster-triggerauthentication kind: ClusterTriggerAuthentication metadata: name: prom-cluster-triggerauthentication type: object
참고네임스페이스 트리거 인증과 클러스터 트리거 인증을 모두 지정할 필요는 없습니다.
오브젝트를 생성합니다. 예를 들면 다음과 같습니다.
$ oc apply -f <file-name>