Docs Menu
Docs Home
/
Kubernetes Operator용 MongoDB 컨트롤러
/ /

GKE 클러스터

Kubernetes 벤더 에 따라 달라지지 않습니다. 그러나 멀티 클러스터 Kubernetes Operator 구현 의 모든 요소를 배포하기 위한 명시적이고 완전한 지침을 제공하기 위해 이 섹션에서는 특히 GCP 에 여러 Kubernetes 클러스터를 배포하는 프로세스 안내합니다.

시작하기 전에 다음 작업을 수행합니다.

  • GCP 계정을 만듭니다.

  • GCP 프로젝트 준비하여 GKE(Google Kubernetes Engine) 클러스터를 만드는 데 사용할 수 있습니다.

  • GCP CLI설치합니다.

  • gcloud auth login 명령으로 인증합니다.

  • 필요에 따라 업데이트하고 다음 env_variables.sh 파일 에 정의된 환경 변수를 설정하다 .

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"

포함된 모든 소스 코드 MongoDB Kubernetes Operator 리포지토리 에서 찾을 수 있습니다.

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

3개의 GKE(Google Kubernetes Engine) 클러스터를 만듭니다.

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

자격 증명 얻고 현재 kubeconfig 파일 에 컨텍스트를 저장합니다. 기본값 으로 이 파일 ~/.kube/config 디렉토리 에 있으며 $KUBECONFIG 환경 변수에의해 참조됩니다.

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

모든 kubectl 명령은 다음 변수를 사용하여 이러한 컨텍스트를 참조합니다.

  • $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-68bf14632610a500070df2fa-19959
2NAME STATUS ROLES AGE VERSION
3gke-k8s-mdb-0-68bf146326-default-pool-bec39049-m9jg Ready <none> 30s v1.33.3-gke.1136000
4gke-k8s-mdb-0-68bf146326-default-pool-bec39049-tb7l Ready <none> 30s v1.33.3-gke.1136000
5gke-k8s-mdb-0-68bf146326-default-pool-bec39049-zw58 Ready <none> 32s v1.33.3-gke.1136000
6
7Nodes in cluster gke_scratch-kubernetes-team_europe-central2-b_k8s-mdb-1-68bf14632610a500070df2fa-19959
8NAME STATUS ROLES AGE VERSION
9gke-k8s-mdb-1-68bf146326-default-pool-be17e55e-g2lx Ready <none> 2m8s v1.33.3-gke.1136000
10gke-k8s-mdb-1-68bf146326-default-pool-be17e55e-gt9x Ready <none> 2m7s v1.33.3-gke.1136000
11gke-k8s-mdb-1-68bf146326-default-pool-be17e55e-j65l Ready <none> 2m9s v1.33.3-gke.1136000
12
13Nodes in cluster gke_scratch-kubernetes-team_europe-central2-c_k8s-mdb-2-68bf14632610a500070df2fa-19959
14NAME STATUS ROLES AGE VERSION
15gke-k8s-mdb-2-68bf146326-default-pool-a61ceb12-f0x0 Ready <none> 114s v1.33.3-gke.1136000

돌아가기

멀티 클러스터 아키텍처

이 페이지의 내용