3.5. 사용자 정의 메트릭 자동 스케일러 트리거 인증 이해
트리거 인증을 사용하면 확장 오브젝트 또는 관련 컨테이너에서 사용할 수 있는 확장 작업에 인증 정보를 포함할 수 있습니다. 트리거 인증을 사용하여 OpenShift Dedicated 보안, 플랫폼 네이티브 Pod 인증 메커니즘, 환경 변수를 전달할 수 있습니다.
스케일링할 오브젝트와 동일한 네임스페이스에 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
기본 인증을 위한 시크릿을 사용한 클러스터 트리거 인증 예
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
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...
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
전달자 토큰이 있는 시크릿 예
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
환경 변수를 사용한 트리거 인증 예
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
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>