对于 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}" # Preemptible nodes disabled — caused random mid-test evictions in CI.# export GKE_SPOT_INSTANCES_SWITCH="--preemptible"

您可以在MongoDB Kubernetes Operator存储库中找到所有包含的源代码。

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

创建三个GKE (Google Kubernetes Engine) 集群:

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:+${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:+${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:+${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-cabcbfd835d45fd33bNAME STATUS ROLES AGE VERSIONgke-k8s-mdb-0-cabcbfd835-default-pool-41737e6e-52hc Ready <none> 112s v1.36.4-gke.1391002gke-k8s-mdb-0-cabcbfd835-default-pool-41737e6e-7pds Ready <none> 113s v1.36.4-gke.1391002gke-k8s-mdb-0-cabcbfd835-default-pool-41737e6e-k76f Ready <none> 113s v1.36.4-gke.1391002 Nodes in cluster gke_scratch-kubernetes-team_europe-central2-b_k8s-mdb-1-cabcbfd835d45fd33bNAME STATUS ROLES AGE VERSIONgke-k8s-mdb-1-cabcbfd835-default-pool-a593e388-0m6k Ready <none> 36s v1.36.4-gke.1391002gke-k8s-mdb-1-cabcbfd835-default-pool-a593e388-5zq5 Ready <none> 32s v1.36.4-gke.1391002gke-k8s-mdb-1-cabcbfd835-default-pool-a593e388-zppj Ready <none> 31s v1.36.4-gke.1391002 Nodes in cluster gke_scratch-kubernetes-team_europe-central2-c_k8s-mdb-2-cabcbfd835d45fd33bNAME STATUS ROLES AGE VERSIONgke-k8s-mdb-2-cabcbfd835-default-pool-4a9f72a1-hn1q Ready <none> 44s v1.36.4-gke.1495002
给本页内容打分