接下來的動作,將會協助您安裝與設定 Google Cloud Platform。您會建立一個新的專案,並安裝後續 Task 所需的 Google Kubernetes Engine(GKE)
PROJECT_ID=systex-lab-$(cat /proc/sys/kernel/random/uuid | cut -b -6) && \
echo "PROJECT_ID=$PROJECT_ID" | tee -a ~/.profile
gcloud projects create $PROJECT_ID
在 Lab 完成後,您可以直接移除此專案,以省約費用
gcloud config set project $PROJECT_ID
預設建議為 asia-east1,所在地點為台灣彰濱。
DEFAULT_REGION=asia-east1 && \
echo "DEFAULT_REGION=$DEFAULT_REGION" | tee -a ~/.profile && \
gcloud config set compute/region $DEFAULT_REGION
asia-east1分三個zone (a,b,c) 隨機選擇一個,避免workshop時大家擠在同一個
GOOGLE_ZONE=asia-east1-$(openssl rand -hex 500|grep -Eo '[a-c]'|head -1) && \
echo "GOOGLE_ZONE=$GOOGLE_ZONE" | tee -a ~/.profile
您必需要為新建的專案連結付費帳戶設定,您可以執行以下指令完成,或至web pageLink a billing account
BILLING_ACCOUNT=$(gcloud beta billing accounts list | grep True | awk -F" " '{print $1}')
gcloud beta billing projects link $PROJECT_ID --billing-account $BILLING_ACCOUNT
一定要看到類似下面畫面確實綁定BILLING_ACCOUNT 否則後續會有問題
xxxxxx@cloudshell:~ (systex-lab-e749a3)$ gcloud beta billing projects link $PROJECT_ID --billing-account=$BILLING_ACCOUNT
billingAccountName: billingAccounts/0xxxx640-9024B6-105FE5
billingEnabled: true
name: projects/systex-lxxxxa3/billingInfo
projectId: systex-lab-e749xx
以下指令會啟用所有 Kubernetes Engine 所需要的 API 使用權限,大約需要 2min ;或是至Web page 啟用 Kubernetes Engin API
gcloud services enable container.googleapis.com
GCP上一個zone 只能選8 vcpu 下面GKE環境選擇如下 machine-type : custom-4-16384 自定義規格 cpu: 4, memory: 16G
gcloud compute machine-types list |grep asia-east1
以下指令,會協助您建立 K8S 叢集,兩個 worknodes,完成約需 3min
gcloud container clusters create ${PROJECT_ID}-k8s \
--num-nodes=2 \
--cluster-version=1.12.8-gke.10 \
--zone=${GOOGLE_ZONE} \
--machine-type=custom-4-16384
請上網查看相容的K8S版本,設定到底下的 --cluster-version
。
參數 --num-nodes 設定太大時,可能會請求不到資源
- 授權使用者權限為 GKE的cluster-admin
kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=$(gcloud config get-value core/account)
- 取得 K8S 叢集認證
gcloud container clusters get-credentials $PROJECT_ID-k8s --zone=${GOOGLE_ZONE}
- 查看 K8S 叢集
gcloud container clusters list