簡介
在本文實作練習中,將會透過 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 叢集以及容器。
Google Cloud Essentials 系列文章
- 如何申請 GCP 免費試用 | Google Cloud
- Google Cloud 入門導覽 | Qwiklabs GSP282
- 如何在 GCP 中建立 Linux VM | Qwiklabs GSP001
- 如何在 GCP 中建立 Windows VM | Qwiklabs GSP093
- 如何使用 Cloud Shell 和 gcloud 指令 | Qwiklabs GSP002
- (本文) 在 Google Cloud 上快速入門 Kubernetes Engine | Qwiklabs GSP100
- 如何在 GCP 中建立 L4 或 L7 負載平衡機制 | Qwiklabs GSP007