Atlas Kubernetes Operator は、次のカスタム リソース定義をサポートしています。
| Resource | 説明 | 短縮名 | 
|---|---|---|
| バックアップ データを保護するためのバックアップ コンプライアンス ポリシーの構成。 | abcp | |
| クラスター Atlas をバックアップするためのバックアップ ポリシー。 | abp | |
| クラスター Atlas をバックアップするためのバックアップ スケジュール。 | abs | |
| データベースユーザーに権限を割り当てるための カスタムデータベースロール。 | adr | |
| Atlas の一部のプロジェクト内のクラスター。 | ad | |
| Atlas の一部のプロジェクト内のデータベースユーザー。 | adu | |
| Atlas のプロジェクト。 | ap | |
| Atlas のプロジェクト チーム。 | at | |
| フェデレーティッドデータベースインスタンスとそのプライベートエンドポイント(Atlas) | idf | |
| 選択したクラウドプロバイダーから Atlas へのプライベートエンドポイント接続。 | ape | |
| Atlas クラスター内のいくつかのコレクションのインデックス。 | 非公式の | |
| Atlas Stream Processing 接続。 | asc | |
| Atlas Stream Processing ワークスペース。 | asi | |
| Atlas のフェデレーティッド認証。 | afa | 
重要
カスタム リソースはデフォルトでオブジェクトを削除しなくなりました
- Atlas Kubernetes Operator はカスタムリソース構成ファイルを使用して Atlas 構成を管理しますが、Atlas Kubernetes Operator2.0 以降、 Kubernetesで削除したカスタム リソースは Atlas で削除されなくなりました(デフォルトでは )。代わりに、Atlas Kubernetes Operator は Atlas 内のそれらのリソースの管理を停止します。 例、 Kubernetesで カスタム リソースを削除すると、デフォルトでは、Atlas Kubernetes Operator は Atlas - AtlasProjectから対応するプロジェクトを自動的に削除しなくなります。この動作の変更は、誤ってまたは予期せずに削除されるのを防ぐことを目的としています。 この動作を Atlas Kubernetes Operator.2 0より前に使用されていたデフォルトに戻す方法などの詳細については、「新しいデフォルト: Atlas Kubernetes演算子.2 の削除保護」を参照してください。0- 同様に、Atlas Kubernetes Operator を使用してKubernetesの Atlasプロジェクトからチームを削除しても、Atlas Kubernetes Operator は Atlas からチームを削除しません。 
- デフォルトのAtlas 構成値が暗黙的に使用されるのを避けるために、必要な構成の詳細を明示的に定義します。 場合によっては、Atlas のデフォルトを継承すると調整ループが発生し、カスタムリソースが - READY状態に達しなくなります。 例、含まれている例に示すように、- AtlasDeploymentカスタムリソースで必要なオートスケーリング動作を明示的に定義すると、カスタムリソース内の静的インスタンスサイズが、オートスケーリングが有効になっている Atlas 配置に繰り返し適用されないことが保証されます。- autoScaling: - diskGB: - enabled: true - compute: - enabled: true - scaleDownEnabled: true - minInstanceSize: M30 - maxInstanceSize: M40 
を使用した Atlas Kubernetes Operator の管理 kubectl
kubectlを使用してクラスター内のすべての Atlas Kubernetes Operator リソースを一覧表示するには、次のコマンドを実行します。
kubectl get atlas 
便宜上、Atlas Kubernetes Operator CRD の特定のタイプを一覧表示または説明するには、上記表にリストされている短い名前を使用できます。 たとえば、 mongodb名前空間内のすべてのatlasdatabaseusersを一覧表示するには、次のコマンドを実行します。
kubectl get adu -n mongodb 
Atlas Kubernetes Operatorワークフロー
Atlas Kubernetes Operator を使用すると、新しい Atlas プロジェクトを作成したり、既存の Atlas プロジェクトを操作したりできます。
Atlas Kubernetes Operator から Atlas へのアクセスを構成するには、次の公開 API キー、プライベート API キー、および組織 ID 情報が必要です。
- Atlas Kubernetes Operator で新しい Atlasプロジェクトを作成する場合は、 組織へのプログラムによるアクセスの付与 。組織で Atlas Administration APIのIP アクセス リストが必要な場合は、 APIアクセス リストも設定する必要があります。 - 重要- API キーには、 Organization Project Creator以上の組織ロールを割り当てる必要があります。 
- 既存の Atlasプロジェクトを操作する場合は、 プロジェクトからプロジェクト アクセスを追加 します。組織で Atlas Administration APIのIP アクセス リストが必要な場合は、 APIアクセス リストも設定する必要があります。 - 重要- Project Ownerプロジェクト ロールに API キーを割り当てる必要があります。 
詳細については、「 Atlas へのアクセスの設定 」を参照してください。
プロセスの作成と更新
サポートされているカスタム リソースのいずれかでspecフィールドを変更するたびに、Atlas Kubernetes Operator で次のワークフローが開始されます。
- Atlas Kubernetes Operator は、変更されたカスタム リソースに関するイベントを受け取ります。 
- Atlas Kubernetes Operator は、リソースが準備できていないことを反映するように - status.conditionsフィールドを更新します。- conditions: - - lastTransitionTime: "2021-03-13T16:26:17Z" - status: "False" - type: Ready 
- Atlas Administration API に接続するために、Atlas Kubernetes Operator は次のいずれかのロケーションから組織 ID と APIキーを読み取ります。 - spec.connectionSecretRef.name(- AtlasProjectカスタム リソースで指定されている場合)- デフォルトでは 、Atlas Kubernetes Operator は カスタム リソース と同じ名前空間 - AtlasProjectに接続シークレットを保持します。シークレットを別の名前空間に保存するには、- spec.connectionSecretRef.namespaceパラメータを指定します。
- globalAtlas Kubernetes Operator シークレット- <operator-deployment-name>-api-key(- spec.connectionSecretRef.nameが指定されていない場合)。
 
- Atlas でリソースを作成または更新するために、Atlas Kubernetes Operator は接続情報を使用して Atlas へのAPI呼び出しを行います。 - 注意- 場合によっては、Atlas Kubernetes Operator が カスタム リソースの調整中に Atlas で複数のAPI呼び出しを実行する場合があります。 たとえば、 には、一致する - AtlasProjectAPI を呼び出すための IP アクセス リスト 構成があります。
- 調整中にエラーが発生した場合、 - status.conditionsはエラーを反映するようにアップデートします。- 例- - lastTransitionTime: "2021-03-15T14:26:44Z" - message: 'POST https://cloud.mongodb.com/api/atlas/v1.0/groups/604a47de73cd8cag77239021/accessList: - 400 (request "INVALID_IP_ADDRESS_OR_CIDR_NOTATION") The address 192.0.2.1dfdfd5 - must be in valid IP address or CIDR notation.' - reason: ProjectIPAccessListNotCreatedInAtlas - status: "False" - type: IPAccessListReady 
- 更新が成功すると、 - status.conditionsはリソースが準備できていることを反映します。- conditions: - - lastTransitionTime: "2021-03-13T16:26:17Z" - status: "True" - type: Ready 
削除プロセス
Atlas Kubernetes Operator 2.0以降、Kubernetes からカスタム リソースを削除すると、オブジェクトはデフォルトで Atlas に残りますが、Atlas Kubernetes Operatorはオブジェクト を制御しなくなります。 配置全体でこのデフォルトを元に戻すか、特定のカスタム リソースのこのデフォルトを注釈で上書きして、Atlas Kubernetes Operator が対応するオブジェクトを Atlas から削除できるようにします。 注釈で を上書きすると、次のワークフローが開始されます。
- Atlas Kubernetes Operator は、削除されたカスタム リソースに関するイベントを受け取ります。 
- Atlas Administration API に接続するために、Atlas Kubernetes Operator は次のいずれかのロケーションから組織 ID とAPIキーを読み取ります。 - spec.connectionSecretRef.name(- AtlasProjectカスタム リソースで指定されている場合)- デフォルトでは 、Atlas Kubernetes Operator は カスタム リソース - AtlasProjectと同じ名前空間に接続シークレットを保持します。シークレットを別の名前空間に保存するには、- spec.connectionSecretRef.namespaceパラメータを指定します。
- globalAtlas Kubernetes Operator シークレット- <operator-deployment-name>-api-key(- spec.connectionSecretRef.nameが指定されていない場合)。
 
- Atlas からリソースを削除するために、Atlas Kubernetes Operator は接続情報を使用して Atlas へのAPI呼び出しを行います。 - 注意- Atlas Kubernetes Operator は、 Kubernetesで作成された関連オブジェクトを削除します。例、 - AtlasDatabaseUserを削除すると、Atlas Kubernetes Operator は関連する接続シークレットを削除します。
注釈を使用したデフォルトのスキップまたは上書き
Atlas Kubernetes Operator の新しいデフォルト動作を変更するには、注釈を使用します。
- カスタム リソースの - metadataに- mongodb.com/atlas-resource-policy: "delete"アノテーションを追加すると、Atlas Kubernetes Operator リソースが削除されると、Atlas Kubernetes Operator は Atlas 内の対応するオブジェクトを削除します。- 例 - apiVersion: atlas.mongodb.com/v1 - kind: AtlasProject - metadata: - name: my-project - annotations: - mongodb.com/atlas-resource-policy: "delete" 
- 新しい削除動作をAtlas Kubernetes Operator 2.0 より前に使用されていたデフォルトに戻すと、カスタム リソースの - metadataに- mongodb.com/atlas-resource-policy: "keep"アノテーションを追加できるようになります。これにより、 Atlas Kubernetes Operatorは、 Atlas Kubernetes Operatorを削除してもリソースを削除しません。 リソース。
- カスタム リソースの - metadataに- mongodb.com/atlas-reconciliation-policy: "skip"アノテーションを追加すると、Atlas Kubernetes Operator はリソースの調整を開始しません。 この注釈により、注釈を削除するまで仕様との同期を一時停止できます。 この注釈を使用すると、カスタム リソースに手動で変更を加え、Atlas Kubernetes Operator が同期中にそれらを元に戻すのを回避できます。 この注釈を削除すると、Atlas Kubernetes Operator はリソースを調整し、それを 仕様と同期します。
- カスタム リソースの - metadataに- mongodb.com/atlas-resource-version-policy: "allow"アノテーションを追加すると、Atlas Kubernetes Operator は、使用している Atlas Kubernetes Operator のバージョンと一致しない場合でも、リソースを使用できます。 リソース バージョンが Atlas Kubernetes Operator バージョンより遅れているメジャー バージョンである場合、最新機能が動作しない可能性があります。 マイナーなバージョンの不一致は後方互換性があります。