Docs Menu

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 작업이 완료되었습니다.

1

다음 예시 dry-run-job.yaml 파일 에 저장하고 kubectl apply -f dry-run-job.yaml를 실행 하여 클러스터 에 적용 . 그러면 Atlas Kubernetes Operator --dry-run 매개변수를 사용하여 Kubernetes 작업으로 시작됩니다. Atlas Kubernetes Operator 의 모든 조정은 한 번만 실행 되며, Atlas 의 리소스 사양과 상태 간에 변경 사항이 있는 경우 각 리소스 에 대한 이벤트를 발생시킵니다.

Atlas 리소스를 변경하지 않고도 이 명령을 여러 번 실행 수 있습니다.

1apiVersion: batch/v1
2kind: Job
3metadata:
4 name: ako-dry-run
5 namespace: mongodb-atlas-system
6spec:
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
2

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
1
atlas kubernetes operator install --targetNamespace=mongodb-atlas-system --config-only
2

다음 Atlas CLI 명령을 실행하여 테스트 실행 프로세스 시작합니다. Atlas 리소스를 변경하지 않고도 이 명령을 여러 번 실행 수 있습니다.

atlas kubernetes dry-run --targetNamespace=mongodb-atlas-system --watch

참고

--watch 플래그를 제공하지 않으면 설치 완료 후 Atlas CLI 종료됩니다.

3

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