对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

部署 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

创建三个GKE (Google Kubernetes Engine) 集群。Kubernetes Operator 部署到其中一个集群, 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
给本页内容打分