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

クイック スタート

項目一覧

  • 前提条件
  • 手順
  • Atlas アカウントを登録するか、ログインします。
  • 組織の API キーを作成します。
  • Atlas Kubernetes Operatorの配置。
  • API キーと組織 ID を使用してシークレットを作成します。
  • AtlasProjectカスタム リソースを作成します。
  • AtlasDeploymentカスタム リソースを作成します。
  • Atlas クラスター データベースにログインするためのパスワードを使用してシークレットを作成します。
  • AtlasDatabaseUserカスタム リソースを作成します。
  • データベースユーザーのステータスを確認します。
  • Atlas Kubernetes Operator がクラスターに接続するために作成したシークレットを取得します。

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

注意

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

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

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

  • x86-64、AMD64、または ARM64 アーキテクチャで実行中のプロセッサを含む実行中の Kubernetes クラスター。

  • jq 1.6 以上

のAtlas Kubernetes Operator プロジェクトにアクセスできます。Github

  • https://github.com/mongodb/mongodb-atlas-kubernetes

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

atlas kubernetes operator install [options]

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

Tip

参照: 関連リンク

重要

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

  • Atlas Kubernetes Operator はカスタムリソース構成ファイルを使用して Atlas2.0 構成を管理しますが、 Atlas Kubernetes Operator 以降、 Kubernetesで削除したカスタム リソースは Atlas で削除されなくなりました(デフォルトでは )。代わりに、Atlas Kubernetes Operator は Atlas 内のそれらのリソースの管理を停止します。例、 Kubernetesで カスタム リソースを削除すると、デフォルトでは、Atlas Kubernetes OperatorAtlasProject は 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
1

新しい Atlas アカウントを登録するか、 Atlas アカウントにログインします 。

2

注意

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

組織へのプログラムによるアクセスを付与し、 API Access Listを構成します。

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

3

次のいずれかのシナリオでは、 <version>を最新のリリース番号に置き換えます。

  • Atlas Kubernetes Operator ですべての 名前空間 を監視する場合 Kubernetes クラスターで、次のコマンドを実行します。

    kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/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
4

シークレット を作成してラベルを付けるには、 は、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 secret に直接配置する必要はありません。 。詳細については、「シークレット ストレージの構成 」を参照してください。

5

次のコマンドを実行して、 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
6

次のいずれかのコマンドを実行して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

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

7

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 secret に直接配置する必要はありません。 。詳細については、「シークレット ストレージの構成 」を参照してください。

8

次のコマンドを実行して、 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
9

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

注意

AtlasDatabaseUserカスタム リソースはクラスターが準備ができるまで待機します。 新しいクラスターの作成には最大 10 分かかります。

kubectl get atlasdatabaseusers my-database-user -o=jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
10
  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

戻る

はじめる