Atlas Kubernetes Operator を使用すると、Kubernetes を離れることなく Atlas 内のリソースを管理できます。 このチュートリアルでは、Atlas Kubernetes Operator を使用して Helm Charts から Atlas に最初のクラスターを作成する方法を説明します。
注意
Helm なしで を開始しますか。
Atlas Kubernetes Operator を使用して、Kubernetes 構成ファイルから Atlas に最初のクラスターを作成するには、「クイック スタート 」を参照してください。
前提条件
このチュートリアルには次のものが必要です。
- x86-64、AMD64、または ARM64 アーキテクチャで実行中のプロセッサを含む実行中の Kubernetes クラスター。
のAtlas Kubernetes Operator プロジェクトにアクセスできます。Github
手順
重要
カスタム リソースはデフォルトでオブジェクトを削除しなくなりました
Atlas Kubernetes Operator はカスタムリソース構成ファイルを使用して Atlas 構成を管理しますが、Atlas Kubernetes Operator2.0 以降、 Kubernetesで削除したカスタム リソースは Atlas で削除されなくなりました(デフォルトでは )。代わりに、Atlas Kubernetes Operator は Atlas 内のそれらのリソースの管理を停止します。 例、 Kubernetesで カスタム リソースを削除すると、デフォルトでは、Atlas Kubernetes Operator は Atlas
AtlasProjectから対応するプロジェクトを自動的に削除しなくなります。この動作の変更は、誤ってまたは予期せずに削除されるのを防ぐことを目的としています。 この動作を 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
Atlas アカウントを登録するか、ログインします。
Register and Log in to Atlas or Register and Log in to Atlas.
組織の認証情報を作成します。
Atlas Kubernetes Operator が Atlas で認証するために使用する認証情報を作成します。次のいずれかを選択します。
Create an API key with Organization Project Creator or Project Owner permissions by following the procedure in Grant Programmatic Access to an Organization.
Create a Service Account with the appropriate roles in your Atlas organization or project. To learn more, see Service Accounts Overview.
Atlas Kubernetes Operator でサービス アカウントを構成する方法の詳細については、サービス アカウントを使用して Atlas へのアクセスを構成する方法。を参照してください。
Atlas Kubernetes Operatorの配置。
次のいずれかのコマンドセットを実行します。
Atlas Kubernetes Operator で特定の 名前空間
--watchNamespacesのセットを監視するには、 フラグを監視する名前空間のコンマ区切りリストに設定します。例、atlas-operator名前空間のみを監視するには、次のコマンドを実行します。helm install atlas-operator --namespace=atlas-operator --set watchNamespaces=atlas-operator --create-namespace mongodb/mongodb-atlas-operator
Atlas データベース配置 を配置します。
Atlas プロジェクトとそのデータベースユーザーをカスタマイズします。
注意
Githubには、次の追加の HelmCharts ChartsGithub の例があります。
atlas-basic : Atlasプロジェクト、 クラスター、データベースユーザーの作成を含む、Atlas Kubernetes Operator の簡単な配置例。
atlas-advanced : マルチリージョン配置、オートスケーリング動作などに関連するボイラープレートを使用した拡張可能で高度な Atlas Kubernetes Operator の配置例。
install-values.yamlという名前のファイルを作成し、次のサンプル コードを貼り付けます。これにより、次の処理が行われます。プロジェクト名を
My Projectに設定します。すべての IP アドレス(0.0.0.0)にプロジェクトへのアクセスを許可します。
Creates a database user named
dbadminthat has thedbAdminrole.Creates a database user named
dbuserthat has thereadWriterole.
project: # Project custom values atlasProjectName: "My Project" projectIpAccessList: - cidrBlock: "0.0.0.0/0" users: # Custom database users - username: dbadmin databaseName: admin roles: - databaseName: admin-role roleName: dbAdmin - username: dbuser databaseName: admin roles: - databaseName: user-role roleName: readWrite 次のコマンドを実行します。
次のコマンドの
--setフラグと--valuesフラグは、組織 ID、認証情報、Atlas プロジェクト構成でValues.yamlファイルの値とデフォルトの Helm Charts の値を上書きします。注意
mongodb/atlas-deploymentは、リポジトリ内のチャートの名前を参照します。helm install atlas-deployment \ mongodb/atlas-deployment \ --namespace=my-cluster \ --create-namespace \ --set atlas.secret.orgId='<orgid>' \ --set atlas.secret.publicApiKey='<publicKey>' \ --set atlas.secret.privateApiKey='<privateApiKey>' \ --values install-values.yaml helm install atlas-deployment \ mongodb/atlas-deployment \ --namespace=my-cluster \ --create-namespace \ --set atlas.secret.orgId='<orgid>' \ --set atlas.secret.clientId='<clientId>' \ --set atlas.secret.clientSecret='<clientSecret>' \ --values install-values.yaml 注意
認証とその他のチャートパラメータのサポートされている Helm 値の完全なリストについては、
helm-chartsリポジトリの values.yaml ファイルを参照してください。Atlas Kubernetes Operator のカスタム リソース パラメータの詳細については、「
AtlasDeploymentカスタム リソース」を参照してください。サーバーレスインスタンスを作成するには、「 サーバーレスインスタンスの例 」を参照してください。
データベースユーザーのステータスを確認します。
次のコマンドを実行して、 dbadminデータベースユーザーが準備ができるまで待ちます。
kubectl wait --for=condition=ready --timeout=10m -n my-cluster atlasdatabaseusers/atlas-deployment-dbadmin
注意
AtlasDatabaseUser Custom リソースは、クラスターの準備が完了するまで待機します。新しいFreeクラスターの作成には15秒もかかりません。新しいFlexクラスターまたは専有クラスターの作成には、最大10分かかる場合があります。
Atlas Kubernetes Operator がデータベース配置に接続するために作成したシークレットを取得します。
重要
次のコマンドにはjq 1.6 以上が必要です。
次のコマンドを実行して、dbadmin データベースユーザーの接続文字列とパスワードを取得します。 接続文字列は出力例とは異なります。
kubectl get secret -n my-cluster my-project-cluster-name-dbadmin -o json | jq -r '.data | with_entries(.value |= @base64d)';
{ "connectionStringStandard": "mongodb://admin-user:%25SomeLong%25password$foradmin@atlas-cluster-shard-00-00.nlrvs.mongodb.net:27017,atlas-cluster-shard-00-01.nlrvs.mongodb.net:27017,atlas-cluster-shard-00-02.nlrvs.mongodb.net:27017/?ssl=true&authSource=admin&replicaSet=atlas-11q9bn-shard-0", "connectionStringStandardSrv": "mongodb+srv://admin-user:%25SomeLong%25password$foradmin@atlas-cluster.nlrvs.mongodb.net", "password": "%SomeLong%password$foradmin", "username": "dbadmin" }
アプリケーションでは、次のシークレットを使用できます。
containers: - name: test-app env: - name: "CONNECTION_STRING" valueFrom: secretKeyRef: name: my-project-cluster-name-dbadmin key: connectionStringStandardSrv