MongoDB 엔터프라이즈 Kubernetes Operator는 더 이상 사용되지 않습니다. The new Kubernetes Operator용 MongoDB 컨트롤러 가 MongoDB 엔터프라이즈 Kubernetes Operator를 대체합니다. Kubernetes Operator용 컨트롤러의 첫 번째 버전은 Enterprise Kubernetes Operator 의 v1.33 버전과 기능적으로 동일합니다. 이 변경 사항에 대한 자세한 내용과 새 연산자로 마이그레이션하는 방법에 대한 지침은 첫 번째 새 버전의 출시 노트 를 참조하세요. MongoDB 엔터프라이즈 Kubernetes Operator의 향후 릴리스는 없을 예정입니다. 각 버전은 기존 1년 지원 정책에 따라 수명이 종료됩니다. 지속적인 지원 받으려면 Kubernetes Operator용 컨트롤러로 마이그레이션 하세요.
Kubernetes 벤더 에 따라 달라지지 않습니다. 그러나 멀티 클러스터 Kubernetes Operator 구현 의 모든 요소를 배포하기 위한 명시적이고 완전한 지침을 제공하기 위해 이 섹션에서는 특히 GCP 에 여러 Kubernetes 클러스터를 배포하는 프로세스 안내합니다.
전제 조건
시작하기 전에 다음 작업을 수행합니다.
GCP 계정을 만듭니다.
GKE(Google Kubernetes Engine) 클러스터를 만드는 데 사용할 수 있도록 GCP 프로젝트 준비합니다.
GCP CLI설치합니다.
필요에 따라 업데이트하고 다음
env_variables.sh
파일 에 정의된 환경 변수를 설정하다 .
1 # GCP project name - this is the only parameter that is mandatory to change here 2 export 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. 6 export K8S_CLUSTER_0="k8s-mdb-0${K8S_CLUSTER_SUFFIX:-""}" 7 export K8S_CLUSTER_0_ZONE="europe-central2-a" 8 export K8S_CLUSTER_0_NUMBER_OF_NODES=3 9 export K8S_CLUSTER_0_MACHINE_TYPE="e2-standard-4" 10 export K8S_CLUSTER_0_CONTEXT_NAME="gke_${MDB_GKE_PROJECT}_${K8S_CLUSTER_0_ZONE}_${K8S_CLUSTER_0}" 11 12 export K8S_CLUSTER_1="k8s-mdb-1${K8S_CLUSTER_SUFFIX:-""}" 13 export K8S_CLUSTER_1_ZONE="europe-central2-b" 14 export K8S_CLUSTER_1_NUMBER_OF_NODES=3 15 export K8S_CLUSTER_1_MACHINE_TYPE="e2-standard-4" 16 export K8S_CLUSTER_1_CONTEXT_NAME="gke_${MDB_GKE_PROJECT}_${K8S_CLUSTER_1_ZONE}_${K8S_CLUSTER_1}" 17 18 export K8S_CLUSTER_2="k8s-mdb-2${K8S_CLUSTER_SUFFIX:-""}" 19 export K8S_CLUSTER_2_ZONE="europe-central2-c" 20 export K8S_CLUSTER_2_NUMBER_OF_NODES=1 21 export K8S_CLUSTER_2_MACHINE_TYPE="e2-standard-4" 22 export 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. 26 export GKE_SPOT_INSTANCES_SWITCH="--preemptible"
소스 코드
절차
2
Kubernetes 클러스터를 생성합니다.
3개의 GKE(Google Kubernetes Engine) 만들기 cluster:
1 gcloud 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:-""}"
1 gcloud 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:-""}"
1 gcloud 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에 자격 증명 저장합니다.
자격 증명 얻고 현재 kubeconfig
파일 에 컨텍스트를 저장합니다. 기본값 으로 이 파일 ~/.kube/config
디렉토리 $KUBECONFIG
에 있으며 환경 변수에 의해 참조됩니다.
1 gcloud container clusters get-credentials "${K8S_CLUSTER_0}" --zone="${K8S_CLUSTER_0_ZONE}" 2 gcloud container clusters get-credentials "${K8S_CLUSTER_1}" --zone="${K8S_CLUSTER_1_ZONE}" 3 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
kubectl
가 Kubernetes 클러스터에 대한 액세스 있는지 확인합니다.
1 echo "Nodes in cluster ${K8S_CLUSTER_0_CONTEXT_NAME}" 2 kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" get nodes 3 echo; echo "Nodes in cluster ${K8S_CLUSTER_1_CONTEXT_NAME}" 4 kubectl --context "${K8S_CLUSTER_1_CONTEXT_NAME}" get nodes 5 echo; echo "Nodes in cluster ${K8S_CLUSTER_2_CONTEXT_NAME}" 6 kubectl --context "${K8S_CLUSTER_2_CONTEXT_NAME}" get nodes
1 Nodes in cluster gke_scratch-kubernetes-team_europe-central2-a_k8s-mdb-0-67d0389d75b70a0007e5894a 2 NAME STATUS ROLES AGE VERSION 3 gke-k8s-mdb-0-67d0389d75-default-pool-bd2d7e42-99mr Ready <none> 30s v1.31.5-gke.1233000 4 gke-k8s-mdb-0-67d0389d75-default-pool-bd2d7e42-d3ql Ready <none> 30s v1.31.5-gke.1233000 5 gke-k8s-mdb-0-67d0389d75-default-pool-bd2d7e42-stxx Ready <none> 29s v1.31.5-gke.1233000 6 7 Nodes in cluster gke_scratch-kubernetes-team_europe-central2-b_k8s-mdb-1-67d0389d75b70a0007e5894a 8 NAME STATUS ROLES AGE VERSION 9 gke-k8s-mdb-1-67d0389d75-default-pool-c4129558-10n1 Ready <none> 76s v1.31.5-gke.1233000 10 gke-k8s-mdb-1-67d0389d75-default-pool-c4129558-gdrg Ready <none> 76s v1.31.5-gke.1233000 11 gke-k8s-mdb-1-67d0389d75-default-pool-c4129558-jbgt Ready <none> 76s v1.31.5-gke.1233000 12 13 Nodes in cluster gke_scratch-kubernetes-team_europe-central2-c_k8s-mdb-2-67d0389d75b70a0007e5894a 14 NAME STATUS ROLES AGE VERSION 15 gke-k8s-mdb-2-67d0389d75-default-pool-0f8822ab-f617 Ready <none> 56s v1.31.5-gke.1233000