Atlas Kubernetes Operator は次のカスタム リソースをサポートしています。
Resource | 説明 |
---|---|
Atlas クラスターをバックアップするためのバックアップ ポリシーの構成。 | |
クラスター Atlas をバックアップするためのバックアップ スケジュールの構成。 | |
Atlas の一部のプロジェクト内のクラスターの構成。 | |
Atlas の一部のプロジェクト内のデータベースユーザーの構成。 | |
Atlas でのプロジェクトの構成。 | |
Atlas でのプロジェクト チームの構成。 | |
Atlas 内のフェデレーティッドデータベースインスタンスとそのプライベートエンドポイントの構成。 | |
Atlas でのフェデレーティッド認証の構成。 |
重要
カスタム リソースの定義が優先されます
Atlas Kubernetes Operator は、Atlas 構成を管理するためにカスタム リソース構成ファイルを使用します。 各カスタム リソース定義は、Atlas UI などの他の方法で指定された設定を上書きします。 カスタム リソースを削除すると、注釈を使用して削除をスキップしない限り、Atlas Kubernetes Operator によって Atlas からオブジェクトが削除されます。 詳細については、「プロセスの作成と更新 」および「削除 プロセス」を参照してください。
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
パラメータを指定します。global
Atlas Kubernetes Operator シークレット<operator-deployment-name>-api-key
(spec.connectionSecretRef.name
が指定されていない場合)。
Atlas でリソースを作成または更新するために、Atlas Kubernetes Operator は接続情報を使用して Atlas へのAPI呼び出しを行います。
注意
場合によっては、Atlas Kubernetes Operator が カスタム リソースの調整中に Atlas で複数のAPI呼び出しを実行する場合があります。 たとえば、 には、一致する
AtlasProject
API を呼び出すための 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
削除プロセス
Kubernetes からカスタム リソースを削除すると、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
パラメータを指定します。global
Atlas 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: "keep"
アノテーションを追加すると、Atlas Kubernetes Operator リソースを削除しても、Atlas Kubernetes Operator はリソースを削除しません。
例
apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project annotations: mongodb.com/atlas-resource-policy: "keep"
カスタム リソースの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 バージョンより小さいメジャー バージョンである場合、最新機能が動作しない可能性があります。 マイナーなバージョンの不一致は後方互換性があります。