AtlasPrivateEndpoint
カスタム リソース
AtlasPrivateEndpoint
カスタムリソースは、Atlasプロジェクトの プライベートエンドポイントを構成します。これにより、パブリック ネットワーク経由で情報を送信せずに、クラウドプロバイダーを Atlas に接続できるようになります。プライベートエンドポイントは、仮想ネットワークから Atlas への一方向接続です。
重要
カスタム リソースはデフォルトでオブジェクトを削除しなくなりました
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 は、Atlas プライベートエンドポイント サービスAPIリソースを使用して次のいずれかのアクションを実行します。
新しいプライベートエンドポイント サービスを作成します。
既存のプライベートエンドポイント サービスを更新します。
Atlas Kubernetes Operator にプライベートエンドポイントを実装する方法の詳細については、「 プライベートエンドポイントの管理 」を参照してください。
例
基本的な例
AtlasPrivateEndpoint
次の例では、 my-project
プロジェクト内で AWSプライベートエンドポイントを定義する カスタム リソースを示しています。
apiVersion: atlas.mongodb.com/v1 kind: AtlasPrivateEndpoint metadata: name: my-atlas-pe1 spec: projectRef: name: my-project namespace: my-operator-namespace provider: AWS region: us-east-1 awsConfiguration: - id: vpcpe-xyz
独立した CRD の例
次の例では、 基本的な例 で定義されているのと同じプライベートエンドポイントを定義するAtlasPrivateEndpoint
独立した CRD を示しています。このカスタムリソース定義を使用すると、このリソースを定義する Atlas Kubernetes Operator の同じインスタンスで、管理していないプロジェクトにこのプライベートエンドポイントを作成できます。独立した操作を有効にするには、 ではなく を使用する必要があります。また、このリソースは親プロジェクトからAPI認証情報を継承できないため、externalProjectRef
projectRef
connectionSecret
を直接指定する必要があります。
apiVersion: atlas.mongodb.com/v1 kind: AtlasPrivateEndpoint metadata: name: my-atlas-pe1 spec: atlasRef: projectID: 66e2f2b621571b7e69a89b66 credentials: name: atlas-connection-secret provider: AWS region: us-east-1 awsConfiguration: - id: vpcpe-xyz
パラメーター
このセクションでは、使用可能なAtlasPrivateEndpoint
カスタム リソース パラメータについて説明します。
metadata.name
型: string
必須
AtlasProject
このプライベートエンドポイントをプロジェクトに追加するために使用する名前。
metadata.namespace
型: string
任意
default
atlasPrivateEndpoint
カスタムリソースを含める 以外の名前空間。カスタム名前空間を定義する場合は、 フィールドのAtlasProject
カスタムspec.privateEndpoint.privateEndpointRef.namespace
リソースに追加する必要があります。
spec.awsConfiguration.id
型: string
条件付き
プライベートエンドポイント ネットワーク インターフェイスのID 。このパラメータは必須であり、 AWSプライベートエンドポイントに限定されます。
spec.azureConfiguration.id
型: string
条件付き
プライベートエンドポイント ネットワーク インターフェイスのID 。このパラメーターは Azure プライベート エンドポイントでは必須であり、 Azureプライベート エンドポイントに限定されます。
spec.azureConfiguration.ipAddress
型: string
条件付き
Azure VNet 内のプライベートエンドポイントのIPアドレス。このパラメーターは Azure プライベート エンドポイントでは必須であり、 Azureプライベート エンドポイントに限定されます。
spec.connectionSecret.name
型: string
条件付き
Atlas Kubernetes Operator が Atlas への接続に使用する組織IDとAPIキーを含む opaque secret の名前。指定されていない場合、Atlas Kubernetes Operator は次のいずれかにフォールバックします。
親
atlasProject
のspec.connectionSecretRef.name
パラメータデフォルトの
global
シークレット(親atlasProject
に対してspec.connectionSecretRef.name
が未定義の場合)
このパラメータは独立した CRD に必須です。
Atlas Kubernetes Operator
atlas.mongodb.com/type=credentials
は、不要な シークレット の監視を回避するために、ラベル の シークレット のみを監視します 。次の例ではシークレットにラベルを付けます。
kubectl label secret the-user-password atlas.mongodb.com/type=credentials
spec.externalProjectRef.id
型: string
条件付き
プライベートエンドポイントが属するプロジェクトのID 。既存の Atlas プロジェクト のプロジェクトIDを指定する必要があります。このパラメータは、次のいずれかによって管理されるプロジェクトに属するプライベートエンドポイントに必要です。
Atlas Kubernetes Operator の別のインスタンス
Atlas Kubernetes Operator 以外のツール
Atlas Kubernetes Operator の同じインスタンスによって管理されるプロジェクトに属する配置では、
spec.externalProjectRef.id
を使用しない場合はspec.projectRef.name
を使用します。プライベートエンドポイントは 1 つのプロジェクトにのみ属することができます。複数のプロジェクトに同じプライベートエンドポイントを定義するには、プロジェクトごとにカスタムリソース定義 を作成します。
spec.gcpConfiguration.endpoints
タイプ: 配列
条件付き
このエンドポイントグループを構成する個々のプライベートエンドポイントのリスト。このパラメータは、Google Cloud プライベートエンドポイントでは必須であり、のみです。
spec.gcpConfiguration.endpoints.[n].ipAddress
型: string
条件付き
指定された Google Cloud プライベートエンドポイントが解決されるIPアドレス。このパラメータは、Google Cloud プライベートエンドポイントでは必須であり、のみです。
spec.gcpConfiguration.endpoints.[n].name
型: string
条件付き
特定の Google Cloud プライベートエンドポイントを一意に識別する名前を付けます。このパラメータは、Google Cloud プライベートエンドポイントでは必須であり、のみです。
spec.gcpConfiguration.groupName
型: string
条件付き
Google Cloud プライベートエンドポイントのセットを一意に識別する名前。このパラメータは、Google Cloud プライベートエンドポイントでは必須であり、のみです。
spec.projectRef.name
型: string
条件付き
プライベートエンドポイントが属するプロジェクトの名前。既存の カスタム
AtlasProject
リソース を指定する必要があります。このパラメーターは、同じインスタンスAtlas Kubernetes Operator によって管理されるプロジェクトに属するプライベートエンドポイントにのみ適用されます。次のいずれかによって管理されるプロジェクトに属する配置の場合、次のいずれかによって管理されます。
Atlas Kubernetes Operator の別のインスタンス
Atlas Kubernetes Operator 以外のツール
spec.externalProjectRef.id
を使用します。プライベートエンドポイントは 1 つのプロジェクトにのみ属することができます。複数のプロジェクトに同じプライベートエンドポイントを定義するには、プロジェクトごとにカスタムリソース定義 を作成します。
spec.projectRef.namespace
型: string
条件付き
で指定された
AtlasProject
カスタムspec.projectRef.name
リソースが存在する名前空間。次のいずれかによって管理されるプロジェクトに属する配置の場合、次のいずれかによって管理されます。
Atlas Kubernetes Operator の別のインスタンス
Atlas Kubernetes Operator 以外のツール
このパラメーターは設定しないでください。