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

カスタム リソース

項目一覧

  • を使用した Atlas Kubernetes Operator の管理 kubectl
  • Atlas Kubernetes Operatorワークフロー
  • プロセスの作成と更新
  • 削除プロセス
  • 注釈を使用したデフォルトのスキップまたは上書き

Atlas Kubernetes Operator は、次のカスタム リソース定義をサポートしています。

Resource
説明
短縮名
AtlasBackupCompliancePolicy カスタム リソース
バックアップ データを保護するためのバックアップ コンプライアンス ポリシーの構成。
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 KubernetesAtlasProject 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

kubectlを使用してクラスター内のすべての Atlas Kubernetes Operator リソースを一覧表示するには、次のコマンドを実行します。

kubectl get atlas

便宜上、Atlas Kubernetes Operator CRD の特定のタイプを一覧表示または説明するには、上記表にリストされている短い名前を使用できます。 たとえば、 mongodb名前空間内のすべてのatlasdatabaseusersを一覧表示するには、次のコマンドを実行します。

kubectl get adu -n mongodb

Atlas Kubernetes Operator を使用すると、新しい Atlas プロジェクトを作成したり、既存の Atlas プロジェクトを操作したりできます。

Atlas Kubernetes Operator から Atlas へのアクセスを構成するには、次の公開 API キー、プライベート API キー、および組織 ID 情報が必要です。

詳細については、「 Atlas へのアクセスの設定 」を参照してください。

サポートされているカスタム リソースのいずれかでspecフィールドを変更するたびに、Atlas Kubernetes Operator で次のワークフローが開始されます。

  1. Atlas Kubernetes Operator は、変更されたカスタム リソースに関するイベントを受け取ります。

  2. Atlas Kubernetes Operator は、リソースが準備できていないことを反映するようにstatus.conditionsフィールドを更新します。

    conditions:
    - lastTransitionTime: "2021-03-13T16:26:17Z"
    status: "False"
    type: Ready
  3. Atlas Administration API に接続するために、Atlas Kubernetes Operator は次のいずれかのロケーションから組織 ID と APIキーを読み取ります。

  4. Atlas でリソースを作成または更新するために、Atlas Kubernetes Operator は接続情報を使用して Atlas へのAPI呼び出しを行います。

    注意

    場合によっては、Atlas Kubernetes Operator が カスタム リソースの調整中に Atlas で複数のAPI呼び出しを実行する場合があります。 たとえば、 には、一致するAtlasProject API を呼び出すための IP アクセス リスト 構成があります。

  5. 調整中にエラーが発生した場合、 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
  6. 更新が成功すると、 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 から削除できるようにします。 注釈で を上書きすると、次のワークフローが開始されます。

  1. Atlas Kubernetes Operator は、削除されたカスタム リソースに関するイベントを受け取ります。

  2. Atlas Administration API に接続するために、Atlas Kubernetes Operator は次のいずれかのロケーションから組織 ID とAPIキーを読み取ります。

  3. Atlas からリソースを削除するために、Atlas Kubernetes Operator は接続情報を使用して Atlas へのAPI呼び出しを行います。

    注意

    Atlas Kubernetes Operator は、Kubernetes で作成された関連オブジェクトを削除します。 たとえば、AtlasDatabaseUser を削除すると、Atlas Kubernetes Operator は関連する接続 シークレット を削除します 。

Atlas Kubernetes Operator の新しいデフォルト動作を変更するには、注釈を使用します。

  • カスタム リソースのmetadatamongodb.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 より前に使用されていたデフォルトに戻すと、カスタム リソースの metadatamongodb.com/atlas-resource-policy: "keep" アノテーションを追加できるようになります。これにより、 Atlas Kubernetes Operatorは、 Atlas Kubernetes Operatorを削除してもリソースを削除しません。 リソース。

  • カスタム リソースのmetadatamongodb.com/atlas-reconciliation-policy: "skip"アノテーションを追加すると、Atlas Kubernetes Operator はリソースの調整を開始しません。 この注釈により、注釈を削除するまで仕様との同期を一時停止できます。 この注釈を使用すると、カスタム リソースに手動で変更を加え、Atlas Kubernetes Operator が同期中にそれらを元に戻すのを回避できます。 この注釈を削除すると、Atlas Kubernetes Operator はリソースを調整し、それを 仕様と同期します。

  • カスタム リソースのmetadatamongodb.com/atlas-resource-version-policy: "allow"アノテーションを追加すると、Atlas Kubernetes Operator は、使用している Atlas Kubernetes Operator のバージョンと一致しない場合でも、リソースを使用できます。 リソース バージョンが Atlas Kubernetes Operator バージョンより遅れているメジャー バージョンである場合、最新機能が動作しない可能性があります。 マイナーなバージョンの不一致は後方互換性があります。

戻る

サードパーティー サービス