iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 15
0
DevOps

Docker獸 究極進化 ~~ Kubernetes獸系列 第 15

Day-15 玩轉 Google Kubernetes Engine

前言

目前在業界上的Kubernetes Cluster,大部分還是基於公有雲(GCP、AWS、Azure、百度雲...etc)而建立,因此章節將透過GCP的免費試用額度讓大家能夠本機創建並操作公有雲上的Kubernetes cluster。

GCP免費試用

google提供了12個月或者是300美金額度的免費試用,在兩者其一達成之前都是免費狀態。我們可以利用這項優惠來練習kubernetes。

  • 請先擁有一個gmail帳號並且點選下面網址連結中的免費試用

https://cloud.google.com/free?hl=zh-tw

  • 之後請選擇區域並填寫個人資訊與信用卡資訊開始試用。

https://ithelp.ithome.com.tw/upload/images/20200930/20129737oD8QwdJIPY.png

  • 填寫完資料之後,開始試用(p.s: 結束試用後並不會開始自動扣款,需要信用卡資訊只是確認使用者並非機器人)

    https://ithelp.ithome.com.tw/upload/images/20200930/20129737X5XOyygRB0.png

    Create Kubernetes cluster

    完成註冊後請到下方網址,請先創建一個專案,並點選左上方的資訊主頁

    https://console.cloud.google.com/home/

    https://ithelp.ithome.com.tw/upload/images/20200930/20129737JgHe5jdhsK.png

    將游標移動到運算下方的Kubernetes Engine,先點選右方的固定(因未來練習很常用到)並點選右方叢集,並點選創建叢集。

    https://ithelp.ithome.com.tw/upload/images/20200930/20129737RRFnKAYgun.png

    創建叢集時,建議先使用GCP建議方案

    https://ithelp.ithome.com.tw/upload/images/20200930/20129737krnFv8SvZh.png

    到這裡K8S的第一個叢集就建立完畢。

    Cloud SDK

    再來我們將透過google的cloud sdk與我們的cluster進行連結,因筆者使用macOS,因此以macOS為例,若為其他作業系統使用者,請參考下方網址

    https://cloud.google.com/sdk/docs/quickstart

    Pre-requisite

    • Install Docker-desktop in Mac
    • Install google-cloud-sdk

    https://cloud.google.com/sdk/docs/quickstart-macos

    • Enable Google Cloud Engine API

    Step-1

    • Make sure python 2.7 is installed on your system.
    $ python -v 
    
    • Download google cloud sdk and install it.
    $ wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-311.0.0-darwin-x86_64.tar.gz
    
    $ tar xfz google-cloud-sdk-311.0.0-darwin-x86_64.tar.gz
    
    • Execute the following command to install gcloud.
    $ ./google-cloud-sdk/install.sh
    
    • After that, please restart your terminal.

    Step-2

    • Initializing the SDK.
    $ gcloud init 
    

    這邊要注意選擇有cluster的專案,可透過專案ID來判斷。

    區域則建議選剛剛創建k8s cluster的區域(在台灣的小夥伴應該是27)

    • Authenicate google cloud.
    $ gcloud auth login
    
    • Setup your GCP project
    $ gcloud config set project <project_id>
    

    PS: project_id能在專案選項看到

    https://ithelp.ithome.com.tw/upload/images/20200930/20129737AlnF9DA5Gp.png

    Step-3(1)

    • If you already have GKE Cluster.
    $ gcloud container clusters get-credentials <cluster_name> --region <region>
    
    $ kubectl config current-context
    gke_oval-compass-290412_asia-east1-a_my-first-cluster-1
    
    $ kubectl config use-context gke_stage-data-alchemy-183102_asia-east1_stg-ceres-cluster
    Switched to context "gke_stage-data-alchemy-183102_asia-east1_stg-ceres-cluster".
    

    And then you can see the kubernetes cluster in your docker-desktop.

    https://ithelp.ithome.com.tw/upload/images/20200930/20129737SEEzbgbNd2.png

    • You can test in your gke cluster.

    先確認這是你全新的環境,並且沒有任何pod在你的cluster中

    $ kubectl get pod 
    No resources found in default namespace.
    

    接下來透過官方的application,建立一個deployment

    $ kubectl apply -f https://k8s.io/examples/service/access/hello-application.yaml
    deployment.apps/hello-world created
    

    然後,我們再確認一次cluster,這時應該會有了剛剛所建立的pod了

    $ kubectl get pod
    NAME                           READY   STATUS    RESTARTS   AGE
    hello-world-86d6c6f84d-n6tg8   1/1     Running   0          64s
    hello-world-86d6c6f84d-v2c9n   1/1     Running   0          64s
    

    最後,則是上GKE看看剛剛建立的結果。那確實是我剛剛建立的deployment,接下來我們點擊進去hello-world

    https://ithelp.ithome.com.tw/upload/images/20200930/20129737sOXb46MQdS.png

    裡頭的Pod也確實是兩個,並且名字與我在local環境下的kubectl得到的資訊一致。

    https://ithelp.ithome.com.tw/upload/images/20200930/20129737bKAsXL5tQv.png

    到這邊就確認我們成功部署並連接到GKE了。

    Step-3(2)

    • If you don't have any Cluster. Create it!
    $ gcloud container clusters create k8s-lab1 --disk-size 10 --zone asia-east1-a --machine-type n1-standard-2 --num-nodes 3 --scopes compute-rw
    

    And then you can see the kubernetes cluster in your docker-desktop

    https://raw.githubusercontent.com/collabnix/kubelabs/master/images/3.png

    Step-4

    • List nodes
    $ kubectl get node
    
    • Deploy nginx on GEK
    $ kubectl run nginx --image=nginx --replicas=3
    deployment "nginx" created
    
    • Vertify that the pods are running
    $ kubectl get pods
    NAME      READY   STATUS    RESTARTS   AGE
    nginx-76df748b9-dhmlh 1/1 Running 0 12s
    nginx-76df748b9-mkd97 1/1 Running 0 12s
    nginx-76df748b9-rmnk2 1/1 Running 0 12s
    

    And you can do what you want to do in your GKE cluster from your local mac.

小結

到這裡為止,從GCP試用到建立第一個GKE叢集以及利用Cloud SDK從本機連到GKE就完成了。

後面的章節將透過GKE平台以及Cloud SDK來練習並熟悉K8S。

https://ithelp.ithome.com.tw/upload/images/20200930/20129737MD4IcKQPUv.png

Reference

https://cloud.google.com/free?hl=zh-tw


上一篇
Day-14 初觸 Kubernetes
下一篇
Day-16 認識 Master Node (Kubernetes)
系列文
Docker獸 究極進化 ~~ Kubernetes獸30

尚未有邦友留言

立即登入留言