Menu Docs
Página inicial do Docs
/ /

Implantar 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ê pelo 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 clustersdo 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.

1# GCP project name - this is the only parameter that is mandatory to change here
2export MDB_GKE_PROJECT="${MDB_GKE_PROJECT:="### Set your GKE project name here ###"}"
3
4# Adjust the values for each Kubernetes cluster in your deployment.
5# The deployment script references the following variables to get values for each cluster.
6export K8S_CLUSTER_0="k8s-mdb-0${K8S_CLUSTER_SUFFIX:-""}"
7export K8S_CLUSTER_0_ZONE="europe-central2-a"
8export K8S_CLUSTER_0_NUMBER_OF_NODES=3
9export K8S_CLUSTER_0_MACHINE_TYPE="e2-standard-4"
10export K8S_CLUSTER_0_CONTEXT_NAME="gke_${MDB_GKE_PROJECT}_${K8S_CLUSTER_0_ZONE}_${K8S_CLUSTER_0}"
11
12export K8S_CLUSTER_1="k8s-mdb-1${K8S_CLUSTER_SUFFIX:-""}"
13export K8S_CLUSTER_1_ZONE="europe-central2-b"
14export K8S_CLUSTER_1_NUMBER_OF_NODES=3
15export K8S_CLUSTER_1_MACHINE_TYPE="e2-standard-4"
16export K8S_CLUSTER_1_CONTEXT_NAME="gke_${MDB_GKE_PROJECT}_${K8S_CLUSTER_1_ZONE}_${K8S_CLUSTER_1}"
17
18export K8S_CLUSTER_2="k8s-mdb-2${K8S_CLUSTER_SUFFIX:-""}"
19export K8S_CLUSTER_2_ZONE="europe-central2-c"
20export K8S_CLUSTER_2_NUMBER_OF_NODES=1
21export K8S_CLUSTER_2_MACHINE_TYPE="e2-standard-4"
22export K8S_CLUSTER_2_CONTEXT_NAME="gke_${MDB_GKE_PROJECT}_${K8S_CLUSTER_2_ZONE}_${K8S_CLUSTER_2}"
23
24# Comment out the following line so that the script does not create preemptible nodes.
25# DO NOT USE preemptible nodes in production.
26export GKE_SPOT_INSTANCES_SWITCH="--preemptible"

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

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

Crie três clusters GKE (Google Kubernetes Engine). O Kubernetes Operator é implantado em um desses clusters, e os recursos personalizados do MongoDB são implantados em todos os clusters e gerenciados pelo Kubernetes Operator.

1gcloud container clusters create "${K8S_CLUSTER_0}" \
2 --zone="${K8S_CLUSTER_0_ZONE}" \
3 --num-nodes="${K8S_CLUSTER_0_NUMBER_OF_NODES}" \
4 --machine-type "${K8S_CLUSTER_0_MACHINE_TYPE}" \
5 --tags=mongodb \
6 "${GKE_SPOT_INSTANCES_SWITCH:-""}"
1gcloud container clusters create "${K8S_CLUSTER_1}" \
2 --zone="${K8S_CLUSTER_1_ZONE}" \
3 --num-nodes="${K8S_CLUSTER_1_NUMBER_OF_NODES}" \
4 --machine-type "${K8S_CLUSTER_1_MACHINE_TYPE}" \
5 --tags=mongodb \
6 "${GKE_SPOT_INSTANCES_SWITCH:-""}"
1gcloud container clusters create "${K8S_CLUSTER_2}" \
2 --zone="${K8S_CLUSTER_2_ZONE}" \
3 --num-nodes="${K8S_CLUSTER_2_NUMBER_OF_NODES}" \
4 --machine-type "${K8S_CLUSTER_2_MACHINE_TYPE}" \
5 --tags=mongodb \
6 "${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 $KUBECONFIG variável de ambiente.

1gcloud container clusters get-credentials "${K8S_CLUSTER_0}" --zone="${K8S_CLUSTER_0_ZONE}"
2gcloud container clusters get-credentials "${K8S_CLUSTER_1}" --zone="${K8S_CLUSTER_1_ZONE}"
3gcloud 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
1echo "Nodes in cluster ${K8S_CLUSTER_0_CONTEXT_NAME}"
2kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" get nodes
3echo; echo "Nodes in cluster ${K8S_CLUSTER_1_CONTEXT_NAME}"
4kubectl --context "${K8S_CLUSTER_1_CONTEXT_NAME}" get nodes
5echo; echo "Nodes in cluster ${K8S_CLUSTER_2_CONTEXT_NAME}"
6kubectl --context "${K8S_CLUSTER_2_CONTEXT_NAME}" get nodes
1Nodes in cluster gke_scratch-kubernetes-team_europe-central2-a_k8s-mdb-0-68ef6309c47x449f6b-15987
2NAME STATUS ROLES AGE VERSION
3gke-k8s-mdb-0-68ef6309c4-default-pool-7420d8c3-jb5l Ready <none> 28s v1.33.4-gke.1350000
4gke-k8s-mdb-0-68ef6309c4-default-pool-7420d8c3-kwc6 Ready <none> 29s v1.33.4-gke.1350000
5gke-k8s-mdb-0-68ef6309c4-default-pool-7420d8c3-rgnk Ready <none> 28s v1.33.4-gke.1350000
6
7Nodes in cluster gke_scratch-kubernetes-team_europe-central2-b_k8s-mdb-1-68ef6309c47x449f6b-15987
8NAME STATUS ROLES AGE VERSION
9gke-k8s-mdb-1-68ef6309c4-default-pool-054980d3-1pz3 Ready <none> 2m36s v1.33.4-gke.1350000
10gke-k8s-mdb-1-68ef6309c4-default-pool-054980d3-qq45 Ready <none> 2m39s v1.33.4-gke.1350000
11gke-k8s-mdb-1-68ef6309c4-default-pool-054980d3-qzwf Ready <none> 2m38s v1.33.4-gke.1350000
12
13Nodes in cluster gke_scratch-kubernetes-team_europe-central2-c_k8s-mdb-2-68ef6309c47x449f6b-15987
14NAME STATUS ROLES AGE VERSION
15gke-k8s-mdb-2-68ef6309c4-default-pool-58418485-7bhg Ready <none> 83s v1.33.4-gke.1350000

Voltar

Arquitetura de vários clusters sem mesclagem de serviços

Nesta página