AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

GKE クラスターの配置

Kubernetesはベンダーに固有ではありません。ただし、 マルチクラスターKubernetes Operator実装のすべての要素を配置するための明示的かつ完全な手順を提供するため、このセクションではGCPに複数のKubernetesクラスターを配置するプロセスについて、具体的に説明します。

始める前に、次のアクションを実行してください。

  • GCPアカウントの作成。

  • GCPプロジェクトを準備し、GKE(Google Kubernetes Engine)クラスターの作成に使用できるようにします。

  • GCP CLI をインストールします。

  • gcloud auth loginコマンドで認証します。

  • 必要に応じて を更新し、次の env_variables.shファイルで定義されている環境変数を設定します。

# GCP project name - this is the only parameter that is mandatory to change hereexport MDB_GKE_PROJECT="${MDB_GKE_PROJECT:="### Set your GKE project name here ###"}" # Adjust the values for each Kubernetes cluster in your deployment.# The deployment script references the following variables to get values for each cluster.export K8S_CLUSTER_0="k8s-mdb-0${K8S_CLUSTER_SUFFIX:-""}"export K8S_CLUSTER_0_ZONE="europe-central2-a"export K8S_CLUSTER_0_NUMBER_OF_NODES=3export K8S_CLUSTER_0_MACHINE_TYPE="e2-standard-4"export K8S_CLUSTER_0_CONTEXT_NAME="gke_${MDB_GKE_PROJECT}_${K8S_CLUSTER_0_ZONE}_${K8S_CLUSTER_0}" export K8S_CLUSTER_1="k8s-mdb-1${K8S_CLUSTER_SUFFIX:-""}"export K8S_CLUSTER_1_ZONE="europe-central2-b"export K8S_CLUSTER_1_NUMBER_OF_NODES=3export K8S_CLUSTER_1_MACHINE_TYPE="e2-standard-4"export K8S_CLUSTER_1_CONTEXT_NAME="gke_${MDB_GKE_PROJECT}_${K8S_CLUSTER_1_ZONE}_${K8S_CLUSTER_1}" export K8S_CLUSTER_2="k8s-mdb-2${K8S_CLUSTER_SUFFIX:-""}"export K8S_CLUSTER_2_ZONE="europe-central2-c"export K8S_CLUSTER_2_NUMBER_OF_NODES=1export K8S_CLUSTER_2_MACHINE_TYPE="e2-standard-4"export K8S_CLUSTER_2_CONTEXT_NAME="gke_${MDB_GKE_PROJECT}_${K8S_CLUSTER_2_ZONE}_${K8S_CLUSTER_2}" # Comment out the following line so that the script does not create preemptible nodes.# DO NOT USE preemptible nodes in production.export GKE_SPOT_INSTANCES_SWITCH="--preemptible"

含まれているすべてのソースコードはMongoDB Kubernetes Operatorリポジトリにあります。

1
gcloud config set project "${MDB_GKE_PROJECT}"
2

3 つの GKE(Google Kubernetes Engine)クラスターを作成します。Kubernetes Operator はこれらのクラスターの 1 つに配置され、 MongoDBカスタム リソースはすべてのクラスターに配置され、 Kubernetes Operator によって管理されます。

gcloud container clusters create "${K8S_CLUSTER_0}" \ --zone="${K8S_CLUSTER_0_ZONE}" \ --num-nodes="${K8S_CLUSTER_0_NUMBER_OF_NODES}" \ --machine-type "${K8S_CLUSTER_0_MACHINE_TYPE}" \ --tags=mongodb \ "${GKE_SPOT_INSTANCES_SWITCH:-""}"
gcloud container clusters create "${K8S_CLUSTER_1}" \ --zone="${K8S_CLUSTER_1_ZONE}" \ --num-nodes="${K8S_CLUSTER_1_NUMBER_OF_NODES}" \ --machine-type "${K8S_CLUSTER_1_MACHINE_TYPE}" \ --tags=mongodb \ "${GKE_SPOT_INSTANCES_SWITCH:-""}"
gcloud container clusters create "${K8S_CLUSTER_2}" \ --zone="${K8S_CLUSTER_2_ZONE}" \ --num-nodes="${K8S_CLUSTER_2_NUMBER_OF_NODES}" \ --machine-type "${K8S_CLUSTER_2_MACHINE_TYPE}" \ --tags=mongodb \ "${GKE_SPOT_INSTANCES_SWITCH:-""}"
3

認証情報を取得し、コンテキストを現在の kubeconfigファイルに保存します。デフォルトでは、このファイルは~/.kube/configディレクトリにあり、$KUBECONFIG 環境変数によって参照されます。

gcloud container clusters get-credentials "${K8S_CLUSTER_0}" --zone="${K8S_CLUSTER_0_ZONE}"gcloud container clusters get-credentials "${K8S_CLUSTER_1}" --zone="${K8S_CLUSTER_1_ZONE}"gcloud container clusters get-credentials "${K8S_CLUSTER_2}" --zone="${K8S_CLUSTER_2_ZONE}"

すべてのkubectlコマンドは、次の変数を使用してこれらのコンテキストを参照します。

  • $K8S_CLUSTER_0_CONTEXT_NAME

  • $K8S_CLUSTER_1_CONTEXT_NAME

  • $K8S_CLUSTER_2_CONTEXT_NAME

4
echo "Nodes in cluster ${K8S_CLUSTER_0_CONTEXT_NAME}"kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" get nodesecho; echo "Nodes in cluster ${K8S_CLUSTER_1_CONTEXT_NAME}"kubectl --context "${K8S_CLUSTER_1_CONTEXT_NAME}" get nodesecho; echo "Nodes in cluster ${K8S_CLUSTER_2_CONTEXT_NAME}"kubectl --context "${K8S_CLUSTER_2_CONTEXT_NAME}" get nodes
Nodes in cluster gke_scratch-kubernetes-team_europe-central2-a_k8s-mdb-0-68c29e4f7014ee0007f0695a-5819NAME STATUS ROLES AGE VERSIONgke-k8s-mdb-0-68c29e4f70-default-pool-daccddb3-f8t9 Ready <none> 29s v1.33.3-gke.1136000gke-k8s-mdb-0-68c29e4f70-default-pool-daccddb3-sf9r Ready <none> 32s v1.33.3-gke.1136000gke-k8s-mdb-0-68c29e4f70-default-pool-daccddb3-skcf Ready <none> 28s v1.33.3-gke.1136000 Nodes in cluster gke_scratch-kubernetes-team_europe-central2-b_k8s-mdb-1-68c29e4f7014ee0007f0695a-5819NAME STATUS ROLES AGE VERSIONgke-k8s-mdb-1-68c29e4f70-default-pool-74f8eefe-764d Ready <none> 82s v1.33.3-gke.1136000gke-k8s-mdb-1-68c29e4f70-default-pool-74f8eefe-8mwj Ready <none> 83s v1.33.3-gke.1136000gke-k8s-mdb-1-68c29e4f70-default-pool-74f8eefe-qzzz Ready <none> 82s v1.33.3-gke.1136000 Nodes in cluster gke_scratch-kubernetes-team_europe-central2-c_k8s-mdb-2-68c29e4f7014ee0007f0695a-5819NAME STATUS ROLES AGE VERSIONgke-k8s-mdb-2-68c29e4f70-default-pool-f2d299fd-qx7n Ready <none> 2m31s v1.33.3-gke.1136000
このページを評価