Helm Charts クイックスタート
項目一覧
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 はカスタムリソース構成ファイルを使用して Atlas2.0 構成を管理しますが、 Atlas Kubernetes Operator 以降、 Kubernetesで削除したカスタム リソースは Atlas で削除されなくなりました(デフォルトでは )。代わりに、Atlas Kubernetes Operator は Atlas 内のそれらのリソースの管理を停止します。例、 Kubernetesで
AtlasProject
カスタム リソースを削除すると、デフォルトでは、Atlas Kubernetes 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 アカウントを登録するか、ログインします。
新しい Atlas アカウントを登録するか、 Atlas アカウントにログインします 。
組織の API キーを作成します。
注意
Atlas Kubernetes Operator から Atlas へのアクセスを構成するには、次の公開 API キー、プライベート API キー、および組織 ID 情報が必要です。
組織へのプログラムによるアクセスを付与し、 API Access Listを構成します。
Atlas Kubernetes Operator から Atlas へのアクセスを構成するには、次の公開 API キー、プライベート API キー、および組織 ID 情報が必要です。
Atlas Kubernetes Operator で新しい Atlasプロジェクトを作成する場合は、 組織へのプログラムによるアクセスの付与 。組織で Atlas Administration APIのIP アクセス リストが必要な場合は、 APIアクセス リストも設定する必要があります。
重要
API キーには、 Organization Project Creator組織ロール以上を割り当てる必要があります。
既存の Atlasプロジェクトを操作する場合は、 プロジェクトからプロジェクト アクセスを追加 します。組織で Atlas Administration APIのIP アクセス リストが必要な場合は、 APIアクセス リストも設定する必要があります。
重要
Project Ownerプロジェクト ロールに API キーを割り当てる必要があります。
Atlas Kubernetes Operatorの配置。
次のいずれかのコマンドセットを実行します。
Atlas Kubernetes Operator ですべての 名前空間 を監視する場合 Kubernetes クラスターで、次のコマンドを実行します。
helm repo add mongodb https://mongodb.github.io/helm-charts helm install atlas-operator --namespace=atlas-operator --create-namespace mongodb/mongodb-atlas-operator Atlas Kubernetes Operator が自分の 名前空間 のみを監視する場合
--watchNamespaces
は、 フラグを独自の 名前空間 に設定します 、次のコマンドを実行します。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 :マルチリージョン配置、オートスケーリング動作などに関連する biorlate を使用した、拡張可能で高度な Atlas Kubernetes Operator の配置例です。
install-values.yaml
という名前のファイルを作成し、次のサンプル コードを貼り付けます。これにより、次の処理が行われます。プロジェクト名を
My Project
に設定します。すべての IP アドレス(0.0.0.0)にプロジェクトへのアクセスを許可します。
dbAdmin
ロールを持つdbadmin
という名前のデータベースユーザーを作成します。readWrite
ロールを持つdbuser
という名前のデータベースユーザーを作成します。
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、API キー、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 利用可能なパラメータの詳細については、「
AtlasDeployment
カスタム リソース 」を参照してください。サーバーレスインスタンスを作成するには、「 サーバーレスインスタンスの例」を参照してください。
データベースユーザーのステータスを確認します。
次のコマンドを実行して、 dbadmin
データベースユーザーが準備ができるまで待ちます。
kubectl wait --for=condition=ready --timeout=10m -n my-cluster atlasdatabaseusers/atlas-deployment-dbadmin
注意
AtlasDatabaseUser
カスタム リソースは、データベースの配置が準備ができるまで待機します。 新しいデータベース配置の作成には最大 10 分かかります。
Atlas Kubernetes Operator がデータベース配置に接続するために作成したシークレットを取得します。
重要
次のコマンドにはjq
1.6 以上が必要です。
次のコマンドを実行して、dbadmin
データベースユーザーの接続文字列とパスワードを取得します。 接続文字列は出力例とは異なります。
kubectl get secret -n my-cluster my-project-cluster-name-dbadmin -ojson | 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