Atlas Kubernetes Operator 테스트 실행
이 페이지의 내용
Atlas Kubernetes Operator 테스트 실행 기능 사용하면 Atlas Kubernetes Operator8S 클러스터 에 해당 사용자 지정 리소스를 적용하여 Atlas 에서 어떤 변경 사항을 적용할지 확인할 수 있습니다. Atlas Kubernetes Operator Atlas 에서 생성/ 업데이트/ 삭제 하려는 모든 리소스 에 대한 이벤트를 전송합니다. 테스트 실행 모드 에서 실행 Atlas Kubernetes Operator 에서 발생하는 이벤트는 '테스트 실행' 이유를 기준으로 필터링할 수 있습니다. 이 기능 Atlas Kubernetes Operator 리소스를 v1.9 에서 v2.x로업그레이드할 때 특히 유용합니다.
전제 조건
Atlas Kubernetes Operator 테스트 실행 기능 사용하려면 다음을 수행해야 합니다.
새로운 Kubernetes 또는 Open Shift 클러스터에 액세스 할 수 있습니다.
새 Kubernetes 클러스터에 Atlas Kubernetes Operator 지정 리소스를 적용합니다. 리소스를 적용 때 자격 증명 포함된 시크릿을 제공해야 합니다. 기존 Kubernetes 클러스터 에서 CRD를 업그레이드하면 Atlas Kubernetes Operator 기존 사용자 지정 리소스를 조정하지 못할 수 있으므로 새 클러스터 필요합니다. 또한 적용되는 CRD는 잠재적인 호환성이 손상되는 변경이 있는 최신 버전일 수 있습니다.
참고
AKO CRD의 한 버전만 특정 Kubernetes 클러스터 에 존재할 수 있습니다. 즉, 새 버전의 Atlas Kubernetes Operator 로 업그레이드를 테스트하려면 드라 실행 실행하기 위해 새 Kubernetes 클러스터 (임시 클러스터 )를 배포 해야 합니다.
테스트 실행하려는 Atlas Kubernetes Operator 의 버전에 해당하는 CRD를 클러스터 에 설치하세요.
Kubernetes 클러스터 에서
mongodb-atlas-operator
서비스 계정을 생성합니다.Atlas Kubernetes Operator 사용자 지정 리소스와 관련된 다음 권한을 사용하여 서비스 계정에 대한 역할 및 역할 바인딩을 만듭니다. 이러한 리소스는 수동으로 생성하거나 Atlas CLI사용하여 생성할 수 있습니다.
list
get
create
update
delete
테스트 실행 이벤트
테스트 실행 프로세스 다음과 같은 메시지 유형을 내보이며, 각 유형은 Normal
또는 Warning
중 하나일 수 있습니다.
Would [verb] ([HTTP-Method]) [Atlas resource URL]
지정된 Atlas Kubernetes Operator 리소스 에 대한 설명과 변경 사항이 Atlas 환경에 적용되는 경우 Kubernetes 에 필요한 Kubernetes 프로세스 . 테스트 실행 모드 인 경우, Atlas Kubernetes Operator
POST
,PATCH
,PUT
,DELETE
와 같이 Atlas 에서 리소스를 생성/ 업데이트/ 삭제 HTTP 동사에 대한 테스트 실행 이벤트만 내보냅니다.
Done
추가 테스트 실행 이벤트는 보고되지 않습니다.
Finished
테스트 실행 프로세스 실행 Kubernetes 작업이 완료되었습니다.
절차
다음 Kubernetes 작업을 적용합니다.
다음 예시 dry-run-job.yaml
파일 에 저장하고 kubectl apply -f dry-run-job.yaml
를 실행 하여 클러스터 에 적용 . 그러면 Atlas Kubernetes Operator --dry-run
매개변수를 사용하여 Kubernetes 작업으로 시작됩니다. Atlas Kubernetes Operator 의 모든 조정은 한 번만 실행 되며, Atlas 의 리소스 사양과 상태 간에 변경 사항이 있는 경우 각 리소스 에 대한 이벤트를 발생시킵니다.
Atlas 리소스를 변경하지 않고도 이 명령을 여러 번 실행 수 있습니다.
1 apiVersion: batch/v1 2 kind: Job 3 metadata: 4 name: ako-dry-run 5 namespace: mongodb-atlas-system 6 spec: 7 backoffLimit: 1 8 template: 9 spec: 10 containers: 11 - args: 12 - --atlas-domain=https://cloud.mongodb.com/ 13 - --log-level=info 14 - --log-encoder=json 15 - --dry-run 16 command: 17 - /manager 18 env: 19 - name: OPERATOR_POD_NAME 20 value: ako-dry-run 21 - name: OPERATOR_NAMESPACE 22 value: mongodb-atlas-system 23 - name: WATCH_NAMESPACE 24 value: mongodb-atlas-system 25 - name: JOB_NAME 26 value: ako-dry-run 27 image: quay.io/mongodb/mongodb-atlas-kubernetes-operator:2.8.0 28 imagePullPolicy: Always 29 livenessProbe: 30 failureThreshold: 3 31 httpGet: 32 path: /healthz 33 port: 8081 34 scheme: HTTP 35 initialDelaySeconds: 15 36 periodSeconds: 20 37 successThreshold: 1 38 timeoutSeconds: 1 39 name: ako-dry-run 40 restartPolicy: Never 41 serviceAccountName: mongodb-atlas-operator
테스트 실행 출력을 나열합니다.
Kubernetes 작업이 완료되면 다음 명령을 실행 하여 방출된 이벤트를 나열할 수 있습니다.
kubectl -n mongodb-atlas-system get events --field-selector reason=DryRun
이 명령은 다음과 유사한 출력을 반환합니다.
LAST SEEN TYPE REASON OBJECT MESSAGE 103s Normal DryRun atlasproject/my-project Would delete (DELETE) /api/atlas/v1.0/groups/6558f184beba40022cbb2043/integrations/SLACK 101s Warning DryRun atlasproject/my-project finished dry run
테스트 실행 출력을 나열합니다.
Kubernetes 작업이 완료되면 다음 명령을 실행 하여 방출된 이벤트를 나열할 수 있습니다.
kubectl -n mongodb-atlas-system get events --field-selector reason=DryRun
이 명령은 다음과 유사한 출력을 반환합니다.
LAST SEEN TYPE REASON OBJECT MESSAGE 103s Normal DryRun atlasproject/my-project Would delete (DELETE) /api/atlas/v1.0/groups/6558f184beba40022cbb2043/integrations/SLACK 101s Warning DryRun atlasproject/my-project finished dry run