3.5. 사용자 정의 메트릭 자동 스케일러 트리거 인증 이해
트리거 인증을 사용하면 확장된 오브젝트에 인증 정보를 포함하거나 관련 컨테이너에서 사용할 수 있는 스케일링 작업을 포함할 수 있습니다. 트리거 인증을 사용하여 OpenShift Container Platform 시크릿, 플랫폼 네이티브 Pod 인증 메커니즘, 환경 변수 등을 전달할 수 있습니다.
스케일링할 오브젝트와 동일한 네임스페이스에 TriggerAuthentication 오브젝트를 정의합니다. 이 트리거 인증은 해당 네임스페이스의 오브젝트에서만 사용할 수 있습니다.
또는 여러 네임스페이스의 오브젝트 간에 자격 증명을 공유하려면 모든 네임스페이스에서 사용할 수 있는 ClusterTriggerAuthentication 오브젝트를 생성할 수 있습니다.
인증 트리거 및 클러스터 트리거 인증은 동일한 구성을 사용합니다. 그러나 클러스터 트리거 인증에는 스케일링된 오브젝트의 인증 참조에 추가 kind 매개변수가 필요합니다.
기본 인증을 위한 시크릿 예
apiVersion: v1
kind: Secret
metadata:
name: my-basic-secret
namespace: default
data:
username: "dXNlcm5hbWU="
password: "cGFzc3dvcmQ="
- 1
- 트리거 인증에 제공할 사용자 이름 및 암호입니다.
데이터스탠자의 값은 base-64로 인코딩되어야 합니다.
기본 인증의 보안을 사용하여 트리거 인증의 예
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: secret-triggerauthentication
namespace: my-namespace
spec:
secretTargetRef:
- parameter: username
name: my-basic-secret
key: username
- parameter: password
name: my-basic-secret
key: password
기본 인증을 위한 시크릿을 사용한 클러스터 트리거 인증 예
kind: ClusterTriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: secret-cluster-triggerauthentication
spec:
secretTargetRef:
- parameter: username
name: my-basic-secret
key: username
- 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...
client-cert.pem: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0...
client-key.pem: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0t...
CA 세부 정보용 보안을 사용하여 트리거 인증의 예
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: secret-triggerauthentication
namespace: my-namespace
spec:
secretTargetRef:
- parameter: key
name: my-secret
key: client-key.pem
- parameter: ca
name: my-secret
key: ca-cert.pem
전달자 토큰이 있는 시크릿 예
apiVersion: v1
kind: Secret
metadata:
name: my-secret
namespace: my-namespace
data:
bearerToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV"
- 1
- 전달자 인증에 사용할 전달자 토큰을 지정합니다.
데이터스탠자의 값은 base-64로 인코딩되어야 합니다.
전달자 토큰을 사용한 트리거 인증 예
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: token-triggerauthentication
namespace: my-namespace
spec:
secretTargetRef:
- parameter: bearerToken
name: my-secret
key: bearerToken
환경 변수를 사용한 트리거 인증 예
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: env-var-triggerauthentication
namespace: my-namespace
spec:
env:
- parameter: access_key
name: ACCESS_KEY
containerName: my-container
Pod 인증 공급자를 사용한 트리거 인증의 예
kind: TriggerAuthentication
apiVersion: keda.sh/v1alpha1
metadata:
name: pod-id-triggerauthentication
namespace: my-namespace
spec:
podIdentity:
provider: aws-eks
추가 리소스
- 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_PASSWORDTriggerAuthentication오브젝트를 생성합니다.$ oc create -f <filename>.yaml
트리거 인증을 사용하는
scaledObjectYAML 파일을 생성하거나 편집합니다.다음 명령을 실행하여 오브젝트를 정의하는 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-triggerauthentication1 kind: TriggerAuthentication2 클러스터 트리거 인증이 있는 확장 오브젝트의 예
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-triggerauthentication1 kind: ClusterTriggerAuthentication2 다음 명령을 실행하여 확장 오브젝트를 생성합니다.
$ oc apply -f <filename>