AIエージェントの場合: ドキュメントインデックスはhttps://www.mongodb.com/ja-jp/docs/llms.txt で利用可能です。任意のURLパスに .md を追加することで、すべてのページのマークダウン バージョンが利用できます。
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

クイック スタート

Atlas Kubernetes Operator を使用すると、Kubernetes を離れることなく Atlas 内のリソースを管理できます。 このチュートリアルでは、Atlas Kubernetes Operator を使用して、Kubernetes 構成ファイルから Atlas に最初のクラスターを作成する方法を説明します。

警告

マルチテナンシー・セキュリティ ガイダンス

異なる名前空間を使用する場合でも、単一の Atlas Kubernetes Operator インストールを複数のテナント間で共有しないでください。演算子を共有するテナントは、クロス名前空間参照を使用して、他のテナントの Atlas 構成やその他のクラウドリソースへのアクセスを提供するシークレットを含む、他の名前空間のリソースにアクセスできます。テナントを分離するには、テナントごとに個別の Atlas Kubernetes Operatorインスタンスを配置します。

注意

Helm を使用して を開始することをおすすめしますか。

Atlas Kubernetes Operator を使用して Helm Charts から Atlas に最初のクラスターを作成するには、「 Helm Charts クイック スタート 」を参照してください。

このチュートリアルには次のものが必要です。

重要

カスタム リソースはデフォルトでオブジェクトを削除しなくなりました

  • Atlas Kubernetes Operator はカスタムリソース構成ファイルを使用して Atlas 構成を管理しますが、Atlas Kubernetes Operator2.0 以降、 Kubernetesで削除したカスタム リソースは Atlas で削除されなくなりました(デフォルトでは )。代わりに、Atlas Kubernetes Operator は Atlas 内のそれらのリソースの管理を停止します。 例、 Kubernetesで カスタム リソースを削除すると、デフォルトでは、Atlas Kubernetes Operator は AtlasAtlasProject から対応するプロジェクトを自動的に削除しなくなります。この動作の変更は、誤ってまたは予期せずに削除されるのを防ぐことを目的としています。 この動作を Atlas Kubernetes Operator. 以前に使用されていたデフォルトに戻す方法などの詳細については、「2 0新しいデフォルト: Atlas Kubernetes Operator. の削除保護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
1

Atlas に登録してログインするか、Atlas に登録してログインします。

2

Atlas Kubernetes Operator をインストールするには、次のいずれかの方法を選択します。

Atlas CLI を使用して Atlas Kubernetes Operator をインストールするには、次のコマンドを実行します。

重要

Atlas CLI はAPIキーを作成しますが、クラスターのアウトバウンドIPを検出できません。--ipAccessList フラグを使用してKubernetesクラスターのIPまたは CIDR ブロックを許可リストに登録し、Atlas Kubernetes Operator が Atlas と通信できるようにします。

atlas kubernetes operator install --ipAccessList <IP_OR_CIDR> [options]

注意

Atlas for Government 用の Atlas Kubernetes演算子をインストールするには、前のコマンドに --atlasGov フラグを追加します。

このコマンドは自動的に次のことを行います。

  • Atlas組織に新しいAPIキーを作成します。

  • 指定されたIP/CIDR をAPIキーのIP アクセス リストに追加します。

  • GitHub からマニフェストを取得して、Atlas Kubernetes Operator をKubernetesクラスターにインストールします。

コマンド構文とパラメータの詳細については、Atlas CLI Atlas Kubernetes Operatorのインストール の ドキュメントを参照してください。

kubectl を使用して Atlas Kubernetes Operator をインストールするには、次の手順に従います。

  1. <VERSION> を最新リリース番号に置き換え、次のいずれかのコマンドを実行します。

    • Atlas Kubernetes Operator でKubernetesクラスター内のすべての名前空間を監視するには、次を実行します。

      kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/refs/heads/main/releases/v<VERSION>/deploy/all-in-one.yaml
    • Atlas Kubernetes Operator で、その名前空間のみを監視する場合は、deploy/namespacedディレクトリから構成ファイルをインストールします。

      kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/v<VERSION>/deploy/namespaced/crds.yaml
      kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/v<VERSION>/deploy/namespaced/namespaced-config.yaml
  2. 「 組織へのプログラムによるアクセスの付与 」の手順に従って、Project Owner または Organization Project Creator権限を持つ API キーを作成します。

3

シークレット を作成してラベルを付けるには、 APIキーと組織IDを使用して次のコマンドを実行します。

kubectl create secret generic mongodb-atlas-operator-api-key \
--from-literal="orgId=<atlas_organization_id>" \
--from-literal="publicApiKey=<atlas_api_public_key>" \
--from-literal="privateApiKey=<atlas_api_private_key>" \
-n mongodb-atlas-system
kubectl label secret mongodb-atlas-operator-api-key atlas.mongodb.com/type=credentials -n mongodb-atlas-system

外部シークレットストレージを使用する場合は、機密情報をKubernetes secrets に直接配置する必要はありません。詳細については、「シークレット ストレージの構成」を参照してください。

4

次のコマンドを実行して、 AtlasProjectカスタム リソースを作成します。

注意

次の例では、spec.connectionSecretRef.name を指定していません。指定しない場合、Atlas Kubernetes Operator は、APIキーと組織IDで以前に設定されたデフォルトの接続シークレットを使用します。

Atlas Kubernetes Operator カスタム リソースを配置します。

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
spec:
name: Test Atlas Operator Project
projectIpAccessList:
- ipAddress: <your-ip-address-range>
comment: "Adding your IP to Atlas access list"
EOF
5

次のいずれかのコマンドを実行してAtlasDeploymentカスタム リソースを作成し、クラスターを作成します。

有料階層:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: my-atlas-cluster
spec:
projectRef:
name: my-project
deploymentSpec:
clusterType: REPLICASET
name: "Test-cluster"
tags:
- key: "environment"
value: "production"
replicationSpecs:
- zoneName: US-Zone
regionConfigs:
- electableSpecs:
instanceSize: M10
nodeCount: 3
providerName: AWS
regionName: US_EAST_1
priority: 7
EOF

無料階層:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: my-atlas-cluster
spec:
projectRef:
name: my-project
deploymentSpec:
clusterType: REPLICASET
name: "Test-cluster"
replicationSpecs:
- regionConfigs:
- regionName: US_EAST_1
providerName: TENANT
backingProviderName: AWS
electableSpecs:
instanceSize: M0
nodeCount: 3
EOF

サーバーレスインスタンスを作成するには、「 サーバーレスインスタンスの例 」を参照してください。

6

P@@ssword%をパスワードに置き換え、次のコマンドを実行します。

kubectl create secret generic the-user-password --from-literal="password=P@@sword%"
kubectl label secret the-user-password atlas.mongodb.com/type=credentials

外部シークレットストレージを使用する場合は、機密情報をKubernetes secrets に直接配置する必要はありません。詳細については、「シークレット ストレージの構成」を参照してください。

7

次のコマンドを実行して、 AtlasDatabaseUserカスタム リソースを作成します。

注意

spec.passwordSecretRef は、過去に作成したパスワードを参照必要があります。

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-database-user
spec:
roles:
- roleName: "readWriteAnyDatabase"
databaseName: "admin"
projectRef:
name: my-project
username: theuser
passwordSecretRef:
name: the-user-password
EOF
8

データベースユーザーが準備できたことを示すTrue応答が返されるまで、次のコマンドを実行します。

注意

AtlasDatabaseUser カスタム リソースはクラスターが準備ができるまで待機します。新しい無料階層Atlasクラスターの作成にかかる時間は、15秒未満です。新しい Flex または 専有クラスターの作成には最大 10 分かかります。

kubectl get atlasdatabaseusers my-database-user -o=jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
9
  1. 次のコマンドをコピーします。

    重要

    次のコマンドにはjq 1.6 以上が必要です。

    kubectl get secret {my-project}-{my-atlas-cluster}-{my-database-user} -o json | jq -r '.data | with_entries(.value |= @base64d)';
  2. 次のプレースホルダーをカスタム リソースの詳細に置き換えます。

    my-project

    AtlasProjectカスタム リソースmetadataフィールドの値を指定します。

    my-atlas-cluster

    AtlasDeploymentカスタム リソースmetadataフィールドの値を指定します。

    my-database-user

    AtlasDatabaseUserカスタム リソースmetadataフィールドの値を指定します。

  3. コマンドを実行します。

    注意

    接続文字列は次の例とは異なります。

    {
    "connectionStringStandard": "mongodb://theuser:P%40%40sword%25@test-cluster-shard-00-00.peqtm.mongodb.net:27017,test-cluster-shard-00-01.peqtm.mongodb.net:27017,test-cluster-shard-00-02.peqtm.mongodb.net:27017/?ssl=true&authSource=admin&replicaSet=atlas-pk82fl-shard-0",
    "connectionStringStandardSrv": "mongodb+srv://theuser:P%40%40sword%25@test-cluster.peqtm.mongodb.net",
    "password": "P@@sword%",
    "username": "theuser"
    }

    このシークレットはアプリケーションで使用できます。

    containers:
    - name: test-app
    env:
    - name: "CONNECTION_STRING"
    valueFrom:
    secretKeyRef:
    name: test-atlas-operator-project-test-cluster-theuser
    key: connectionStringStandardSrv