カスタム リソース
項目一覧
Atlas Kubernetes Operator は、次のカスタム リソース定義をサポートしています。
Resource | 説明 | 短縮名 |
---|---|---|
バックアップ データを保護するためのバックアップ コンプライアンス ポリシーの構成。 | abcp | |
クラスター Atlas をバックアップするためのバックアップ ポリシー。 | abp | |
クラスター Atlas をバックアップするためのバックアップ スケジュール。 | abs | |
Atlas の一部のプロジェクト内のクラスター。 | ad | |
Atlas の一部のプロジェクト内のデータベースユーザー。 | adu | |
Atlas のプロジェクト。 | ap | |
Atlas のプロジェクト チーム。 | at | |
フェデレーティッドデータベースインスタンスとそのプライベートエンドポイント(Atlas) | idf | |
Atlas クラスター内のいくつかのコレクションのインデックス。 | 非公式の | |
Atlas Stream Processing 接続。 | asc | |
Atlas Stream Processing インスタンス。 | asi | |
Atlas のフェデレーティッド認証。 | afa |
重要
カスタム リソースはデフォルトでオブジェクトを削除しなくなりました
Atlas Kubernetes Operator は、 カスタムリソース構成ファイルを使用して Atlas2.0 構成を管理しますが、Atlas Kubernetes Operator 以降、 Kubernetesで削除したカスタム リソースは Atlas で削除されなくなりました(デフォルトでは )。代わりに、Atlas Kubernetes Operator は Atlas 内のそれらのリソースの管理を停止します。例、 Kubernetesで カスタム リソースを削除すると、デフォルトでは、Atlas Kubernetes
AtlasProject
Operator は Atlas から対応するプロジェクトを自動的に削除しなくなります。この動作の変更は、誤ってまたは予期せずに削除されるのを防ぐことを目的としています。この動作を、Atlas Kubernetes Operator2 0以前に使用されていたデフォルトに戻す方法などの詳細については、 をご覧ください。 については、「 新しいデフォルト: Atlas Kubernetes Operator の削除保護 」を参照してください。20 。同様に、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
パラメータを指定します。global
Atlas Kubernetes Operator secret<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
削除プロセス
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
パラメータを指定します。global
Atlas Kubernetes Operator secret<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 バージョンより遅れているメジャー バージョンである場合、最新機能が動作しない可能性があります。 マイナーなバージョンの不一致は後方互換性があります。