Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

Clusters GKE

O Kubernetes não é específico do fornecedor; no entanto, com o objetivo de fornecer instruções explícitas e completas para a implantação de todos os elementos de uma implementação de vários clusters do Kubernetes Operator, esta seção orienta você no processo de implantação de vários clusters do Kubernetes no GCP especificamente.

Antes de começar, execute as seguintes ações:

  • Crie uma conta GCP.

  • Prepare um projeto GCP para que você possa usá-lo para criar clusters GKE (Google Kubernetes Engine).

  • Instale o GCP CLI.

  • Autentique com o comando gcloud auth login.

  • Atualize conforme necessário e defina as variáveis de ambiente definidas no arquivo env_variables.sh a seguir.

# 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"

Você pode encontrar todo o código-fonte incluído no repositório do MongoDB Kubernetes Operator.

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

Criar três clusters 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

Obtenha credenciais e salve contextos no arquivo kubeconfig atual. Por padrão, este arquivo está localizado no diretório ~/.kube/config e referenciado pela variável de ambiente $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}"

Todos os comandos kubectl referenciam estes contextos utilizando as seguintes variáveis:

  • $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