Docs Menu
Docs Home
/ /
Atlas Kubernetes 演算子

Atlas Kubernetes Operator ハード実行

Atlas Kubernetes Operator ドライバー 実行機能を使用すると、K8S クラスターに適用されるカスタム リソースによって、Atlas Kubernetes Operator がどのように変更されるかを確認できます。 Atlas Kubernetes Operator は、Atlas で作成/更新/削除するすべてのリソースのイベントを出力します。ドライバーがモードで実行中Atlas Kubernetes Operator によって発行されるイベントは、「ドライバーが実行」される理由でフィルタリングできます。 この機能は、Atlas Operator リソースをアップグレードするのに役立ちます。

Atlas Kubernetes Operatortry Run 機能を使用するには、次の条件を満たす必要があります。

  • 新しいKubernetesまたはOpenShiftクラスターにアクセスできるようにします。

  • Atlas Kubernetes Operator カスタム リソース を 新しいKubernetesクラスター に適用します。リソースを適用するときは、 認証情報 を持つ シークレットを指定していることを確認してください。既存のKubernetesクラスターで CRD をアップグレードすると、Atlas Kubernetes Operator が既存のカスタム リソースを調整 できなくなる可能性があるため、新しいクラスターが必要になります。さらに、適用される CRD は、重大な変更を含む新しいバージョンになる可能性があります。

    注意

    特定のKubernetesクラスターには、ACO CRD の 1 つのバージョンのみが存在できます。つまり、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リソースとKubernetesが必要とするKubernetesプロセスの説明は、Atlas 環境に変更を適用する必要があります。ドライバーモードの場合、Atlas Kubernetes Operator は、POSTPATCHPUTDELETE など、Atlas のリソースを作成/更新/削除するHTTPバージョンのドライバー 実行イベントのみを出力します。

  • Done

    • これ以上のドライバー 実行イベントは報告されません。

  • Finished

    • ドライバー プロセスを実行中Kubernetesジョブが完了しました。

1

次の例を dry-run-job.yaml というファイルに保存し、kubectl apply -f dry-run-job.yamlを実行中してクラスターに適用します。これにより、--dry-run パラメーターを持つKubernetes Operator がKubernetesジョブとして起動されます。 Atlas Kubernetes Operator のすべての調整は 1 回だけ実行され、リソースの仕様と 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-leveldebug に設定されている場合、Atlas Kubernetes Operator は、Atlas Kubernetes Operator によって管理される Atlas リソースに対して行った変更の詳細な差分を提供します。この差は、Atlas Kubernetes Operator カスタム リソースの現在の状態と Atlas Kubernetes Operator が Atlas 環境に適用される状態との間の違いを確認できるため、特に ドライバー 機能と組み合わせて使用すると便利です。

この差分機能は、Atlas に送信された PUT または PATCH リクエストの結果と、Atlas 環境内の Atlas Kubernetes Operator カスタム リソースの現在の状態を比較することでその情報を得ます。

注意

この比較を容易にするために、Atlas Kubernetes演算子は Atlas に GETリクエストを送信し、Atlas 内のリソースの現在の状態を学習します。 そのため、非本番環境でログレベルを に設定することをお勧めします。この機能は Atlas の負荷を増加させる可能性があるためです。

違いを確認するには、Atlas Kubernetes Operator コマンドを実行中ときに --log-level=debug フラグを設定する必要があります。Atlas Kubernetes Operator は構造化ログを使用するため、人間が読みやすくするために構造化ログ ビューでJSON差分を分析することをお勧めします。次の例は、構造化ロギング ビューに表示される、レンダリングされた Atlas Kubernetes Operator DEBUGログ行の YAML形式のログ行を示しています。

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://...

戻る

チーム

項目一覧