在 Google Cloud 上快速入門 Kubernetes Engine | Qwiklabs GSP100



簡介

在本文實作練習中,將會透過 Kubernetes Engine:Qwik Start | Google Cloud Skills Boost 主題,學習如何在 GCP 雲端環境中,部署和建立 GKE (Google Kubernetes Engine) 叢集環境,以便管理容器化應用程式並調度資源,並練習透過 GEK 叢集平台建立容器及部署應用程式。






啟用 Cloud Shell (gcloud)

本次實作時間給予 1 小時也是非常充裕。同樣的,啟動實作環境後,系統提供暫用的使用者帳號、密碼、Project ID…等資訊。


在 Cloud Console 畫面中,點選右上角圖示後,準備啟用 Cloud Shell (gcloud),稍後也會使用到。簡單來說,Cloud Shell 是個已經載入了開發工具的極小型 VM 虛擬主機,並且提供 5 GB 儲存空間,以便管理人員可以透過 Cloud Shell 對 Google Cloud 資源進行存取等管理動作。

順利啟用 Cloud Shell 之後,可以嘗試執行「gcloud auth list」、「gcloud config list project」指令,了解目前運作環境的相關系統資訊。詳細資訊請參考 gcloud CLI overview  |  Google Cloud CLI Documentation 官方文件。





設定採用的 Region 和 Zone

在開始實作之前,應該先了解有哪一些 Google Compute Engine 資源,可供使用。簡單來說,「區域」(Region) 是執行資源的特定地理位置,每個區域當中則會有一或多個「可用區」(Zone)。舉例來說,「us-west1」表示美國西部區域,在這個區域中有「us-west1-a、us-west1-b」 可用區。有關 Region 和 Zone 的詳細資訊,請參考 Regions and zones  |  Compute Engine Documentation  |  Google Cloud 官方文件。下表列出各個可用區和所屬區域:


透過下列指令,可以組態設定 Region 為「us-east1」,並將 Zone 設定為「us-east1-b」,組態設定完成後,記得透過指令確認組態設定是否套用生效。






部署 GKE 叢集

在每一個 GKE 叢集中,至少要包含一個「叢集主要執行個體」主機,或是數個稱為「叢集節點」的工作站主機。簡單來說,「叢集節點」就是 Compute Engine 虛擬機器 (VM) 執行個體,裡面會執行必要的 Kubernetes 程序後,才能順利加入 GKE 叢集中。值得注意的是,GKE 叢集名稱須以英文字母開頭,以英數字元結尾,並且長度不得超過 40 個半形字元

執行下列指令部署 GKE 叢集,並於 GKE 叢集部署成後,取得驗證憑證後續才能與 GKE 叢集互動。

gcloud container clusters create --machine-type=e2-medium --zone=assigned_at_lab_start lab-cluster
gcloud container clusters get-credentials lab-cluster






部署應用程式至 GKE 叢集

完全 GKE 叢集部署作業並取得憑證後,現在可以將容器化的應用程式部署至 GKE 叢集。在本文實作環境中,將會在叢集中部署 hello-app 容器化應用程式。


在 GKE 叢集中,將會透過 Kubernetes 物件來建立及管理 GKE 叢集資源。Kubernetes 提供 Deployment 物件來部署無狀態的應用程式,例如,網路伺服器。而 Service 物件則會定義從網際網路存取應用程式時的規則和負載平衡。

首先,執行 kubectl create 指令,以便從 hello-app 容器映像檔建立新 Deployment hello-server。接著,執行 kubectl expose 指令,以便 Kubernetes Service 將會對外部流量公開應用程式的 Kubernetes 資源,例如,本文就是對應到 Port 8080。最後,透過 kubectl get 指令,檢查 hello-server Service 的運作情況,其中 EXTERNAL-IP 欄位將會從原本的 pending,變成如本文的 35.190.161.248 公用  IP 位址 (大約花費 1 分鐘左右) ,然後就可以開啟瀏覽器,嘗試看看能否存取到 hello-app 容器建立的網頁內容。

kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0
kubectl expose deployment hello-server --type=LoadBalancer --port 8080
kubectl get service






刪除 GKE叢集

執行「gcloud container clusters delete lab-cluster 」指令,即可刪除 GKE 叢集,並且 GKE 叢集將會在幾分鐘之內刪除完畢,詳細資訊請參考 Deleting a cluster  |  Google Kubernetes Engine (GKE)  |  Google Cloud  官方文件。


同樣的,在完成實作練習結束前,記得確認是否通過所有的檢查程序,才能確保獲得這個實作課程的積分,往下一個實作前進。


結束前,再回顧一下怎麼建立和部署 GKE 叢集以及容器。