Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ /
Atlas 쿠버네티스 운영자

Atlas Kubernetes Operator 테스트 실행

Atlas Kubernetes Operator 테스트 실행 기능 사용하면 Atlas Kubernetes Operator8S 클러스터 에 해당 사용자 지정 리소스를 적용하여 Atlas 에서 어떤 변경 사항을 적용할지 확인할 수 있습니다. Atlas Kubernetes Operator Atlas 에서 생성/ 업데이트/ 삭제 하려는 모든 리소스 에 대한 이벤트를 전송합니다. 테스트 실행 모드 에서 실행 Atlas Kubernetes Operator 에서 발생하는 이벤트는 '테스트 실행' 이유를 기준으로 필터링할 수 있습니다. 이 기능은 Atlas Operator 리소스를 업그레이드하는 데유용합니다.

Atlas Kubernetes Operator 테스트 실행 기능 사용하려면 다음을 수행해야 합니다.

  • Kubernetes 또는 OpenShift 클러스터에 액세스 할 수 있습니다.

  • 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

--log-level 을(를) debug(으)로 설정하다 Atlas Kubernetes Operator Atlas Kubernetes Operator 를 managed Atlas 리소스에 적용한 변경 사항에 대한 자세한 차이점을 제공합니다. 이 차이점은 Atlas Kubernetes Operator 사용자 지정 리소스의 현재 상태 와 Atlas Kubernetes Operator Atlas 환경에 적용 할 상태 간의 차이를 확인할 수 있는 테스트 실행 기능 과 함께 사용할 때 특히 유용합니다.

이 기능 Atlas 로 전송된 PUT 또는 PATCH 요청의 결과를 Atlas 환경에 있는 Atlas Kubernetes Operator 사용자 지정 리소스의 현재 상태 와 비교하여 알려집니다.

참고

이러한 비교를 용이하게 하기 위해, Atlas Kubernetes Operator Atlas 에 GET 요청 보내 Atlas 의 현재 리소스 상태 학습 . 따라서 로그 수준을 디버그로 설정하다 비프로덕션 환경에서만 설정하는 것이 좋습니다. 이 기능 Atlas 의 부하를 증가시킬 수 있습니다.

차이점을 확인하려면 Atlas Kubernetes Operator 명령을 실행 때 --log-level=debug 플래그를 설정하다 해야 합니다. Atlas Kubernetes Operator 구조화된 로깅을 사용하므로 사람의 가독성을 높이기 위해 구조화된 로깅 뷰어에서 JSON diff를 분석하는 것이 좋습니다. 다음 예시 구조화된 로깅 뷰어에 표시되는 YAML 형식의 렌더링된 Atlas Kubernetes Operator DEBUG 로그 줄을 보여줍니다.

apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: test
namespace: flex
spec:
flexSpec:
name: test
providerSettings:
backingProviderName: AWS
regionName: US_EAST_1
terminationProtectionEnabled: true -> false
projectRef:
name: test
1 | diff: |
2 | {
3 | - "backupSettings": {
4 | - "enabled": true
5 | - },
6 | - "clusterType": "REPLICASET",
7 | - "connectionStrings": {
8 | - "standard": "...",
9 | - "standardSrv": "..."
10 | - },
11 | - "createDate": "2025-07-21T09:52:06Z",
12 | - "groupId": "687e0db8823af91...",
13 | - "id": "687e0dc6426db7026...",
14 | - "mongoDBVersion": "8.0.11",
15 | - "name": "test",
16 | - "providerSettings": {
17 | - "backingProviderName": "AWS",
18 | - "diskSizeGB": 5,
19 | - "providerName": "FLEX",
20 | - "regionName": "US_EAST_1"
21 | - },
22 | - "stateName": "IDLE",
23 | "tags": [
24 | ],
25 | - "terminationProtectionEnabled": false,
26 | + "terminationProtectionEnabled": true,
27 | - "versionReleaseSystem": "LTS"
28 | }
29 | level: DEBUG
30 | msg: JSON diff
31 | time: 2025-07-22T18:07:01.163+0200
32 | url: https://...

돌아가기

이 페이지의 내용