Docs Menu
Docs Home
/ /
MongoDB Atlas Kubernetes 演算子

Atlas Kubernetes Operator ハード実行

項目一覧

  • 前提条件
  • ドライバー イベント
  • 手順

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

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

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

  • 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

戻る

チーム