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 は、
POST
、PATCH
、PUT
、DELETE
など、Atlas のリソースを作成/更新/削除するHTTPバージョンのドライバー 実行イベントのみを出力します。
Done
これ以上のドライバー 実行イベントは報告されません。
Finished
ドライバー プロセスを実行中Kubernetesジョブが完了しました。
手順
次のKubernetesジョブを適用します。
次の例を dry-run-job.yaml
というファイルに保存し、kubectl apply -f dry-run-job.yaml
を実行中してクラスターに適用します。これにより、--dry-run
パラメーターを持つKubernetes Operator がKubernetesジョブとして起動されます。 Atlas Kubernetes Operator のすべての調整は 1 回だけ実行され、リソースの仕様と 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