GKE дээр Helm, Күбернетес ашиглан жишээ апплкейшн суулгаж тохируулах

  • Google Kubernetes Engine дээр кластер үүсгэх
  • Helm, Tiller суулгах
  • TLS Key үүсгэх
  • Odoo-г суулгах

Google Kubernetes Engine дээр кластер үүсгэх

Google Cloud Platform дээр Google Kubernetes Engine дээр кластер үүсгэх Helm Chart суулгаж TLS, Cert-Manager суулган тохируулж сүүлд нь Odoo-г суулгаж үзнэ.

gcloud дамжуулан GCP - тэй холбогдоно. Google Cloud Platform - бүртгэл байхгүй бол эхлээд бүртгүүлээрэй.

kubectl gcloud суулгасан бол дээр байгаа гарын авлага ашиглахгүй kubectl суулгая гэвэл:

gcloud components install kubectl

Кластер үүсгэхээсээ ѳмнѳ нэвтрэн орно:

gcloud auth application-default login

Нэвтрэн орсон бол доорк коммандараар шинэ прожект үүсгэнэ:

gcloud projects create ${PROJECT}

Эсхүл заавал CLI-ээр үүсгэхгүй гэвэл GCP дээрээс browser дээрээс орон шинэ прожект үүсгэж болно. Терминал дээрээ ѳѳрийн тѳслийг default болгож zone тохиргоо хийх бол:

gcloud config set project ${PROJECT} 
gcloud config set compute/zone ${ZONE}

Zone жигсаалт авах бол: gcloud compute zones list

Одоо шинээр үүсгэсэн тѳсѳл дотроо кластер үүсгэе. Google Kubernetes Engine -г идэвхжүүлээгүй бол эхлээд brwoser-ѳѳсѳѳ GCP -г ороод GKE-г enable хийх хийнэ. Kubernetes Engine -г ороод browser дээрээс анх удаа кластер үүсгэж байгаа хичээл болон жишиг кластер тохироог санал болгоно. Тэр аргаар нь үүсгэж болно. Эсхүл доор байгаа командаар үүсгэж болно.

gcloud beta container --project ${PROJECT} clusters create "my-first-cluster-1" \
  --zone "us-central1-c" \
  --no-enable-basic-auth \
  --cluster-version "1.16.15-gke.4901" \
  --machine-type "e2-medium" \
  --image-type "COS" \
  --disk-type "pd-standard" \
  --disk-size "100" \
  --scopes "https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append" \
  --no-enable-cloud-logging \
  --no-enable-cloud-monitoring \
  --no-enable-ip-alias \
  --network "projects/${PROJECT}/global/networks/default" \
  --subnetwork "projects/${PROJECT}/regions/us-central1/subnetworks/default" \
  --addons HorizontalPodAutoscaling \
  --enable-autoupgrade \
  --enable-autorepair \
  --enable-autoscaling \
  --num-nodes "2" \
  --min-nodes "2" \
  --max-nodes "5"

zones: Кластер үүсгэж байгаа сервверийн байршил. machine-type: Кластерын үүсгэж байгаа тѳхѳѳрѳмжийн сонголт. Ямар тѳрлийн тѳхѳѳрѳмж сонгхож байгаагаас үнэ болон хэдэн node үүсгэх лимит зэрэгг тодорохйлогдоно. Дэлгэрэнгүй судлах бол: Machine Types. addons: Автоматаар буюу ачаалал их болох үед node ѳргѳтгѳл хийх тохиргоо оруулав: HorizontalPodAutoscaling. min-node: Автомат ѳргѳтгѳл хийж байх үед кластерт хамгийн бага байх node. max-node: Автомат ѳргѳтгѳл хийж байх үед кластерт хамгийн их байх node.

Шинээр үүсгэсэн кластерт role binding тохируулна:

gcloud container clusters get-credentials ${Кластер нэр}

kubectl create clusterrolebinding cluster-admin-binding \
  --clusterrole cluster-admin \
  --user $(gcloud config get-value account)

Helm суулгах

Helm суулгах:

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get | bash
kubectl create serviceaccount -n kube-system tiller 
kubectl create clusterrolebinding tiller-cluster-rule \
  --clusterrole=cluster-admin --serviceaccount=kube-system:tiller

to be continued…