检查点
Create cluster and deploy an app
/ 40
Migrate to an Optimized Nodepool
/ 20
Apply a Frontend Update
/ 20
Autoscale from Estimated Traffic
/ 20
Optimize Costs for Google Kubernetes Engine:挑戰實驗室
GSP343
簡介
在挑戰研究室中,您會在特定情境下完成一系列任務。挑戰研究室不會提供逐步說明,您將運用從課程研究室學到的技巧,自行找出方法完成任務!自動評分系統 (如本頁所示) 將根據您是否正確完成任務來提供意見回饋。
在您完成任務的期間,挑戰研究室不會介紹新的 Google Cloud 概念。您須靈活運用所學技巧,例如變更預設值或詳讀並研究錯誤訊息,解決遇到的問題。
若想滿分達標,就必須在時限內成功完成所有任務!
這個實驗室僅適合 Optimize Costs for Google Kubernetes Engine 課程的學員。準備好迎接挑戰了嗎?
設定和需求
點選「Start Lab」按鈕前的須知事項
請詳閱以下操作說明。研究室活動會計時,而且中途無法暫停。點選「Start Lab」 後就會開始計時,讓您瞭解有多少時間可以使用 Google Cloud 資源。
您將在真正的雲端環境中完成實作研究室活動,而不是在模擬或示範環境。為達此目的,我們會提供新的暫時憑證,讓您用來在研究室活動期間登入及存取 Google Cloud。
如要完成這個研究室活動,請先確認:
- 您可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
- 是時候完成研究室活動了!別忘了,活動一開始將無法暫停。
挑戰情境
您是 Google Kubernetes Engine 首席管理員,旗下團隊負責管理 OnlineBoutique 的線上商店。
您準備要將團隊網站部署到 Google Kubernetes Engine,但仍在尋找確實能降低成本並提高效能的方法。
您的職責是將 OnlineBoutique 應用程式部署到 GKE,並依建議變更部分設定,以符合最佳成本效益。
以下是部署時須遵守的一些準則:
- 在
可用區建立叢集。 - 採用 team-resource-number 的命名結構,例如可將叢集命名為
。 - 如果是初始叢集,請從
e2-standard-2 (2 vCPU, 8G memory)
這個機器大小開始。 - 將叢集設為使用快速
release-channel
。
工作 1:建立叢集並部署應用程式
-
您需先在
可用區建立叢集,並命名為 ,才可以部署應用程式。 -
從小規模開始,建立一個只含兩 (2) 個節點的可用區叢集。
-
部署商店前,請務必根據
dev
和prod
這 2 個環境,設定一些命名空間,分隔叢集上的資源。 -
之後,透過以下指令將應用程式部署到
dev
命名空間:
點選「Check my progress」確認目標已達成。
工作 2:遷移至已最佳化的節點集區
- 將應用程式順利部署到 dev 命名空間後,請查看節點詳細資料:
您得到結論,應該要調整叢集的節點集區:
- 目前部署作業中還留有不少 RAM,因此您應可與提供較少 RAM的機器共用節點集區。
- 在大多數部署作業中,如果您考慮提高備用資源數量,每增加一個 Pod 將僅需要 100 個 mCPU。如果您將節點集區設為使用較小的機器,則可使用總 CPU 較少的節點集區。不過,您也需考量有多少部署作業需要調度資源,以及需採取怎樣的資源調度率。
-
建立名為
的新節點集區,並將機型指定為 custom-2-3584。 -
將節點數設為 2。
-
新節點集區設定完成後,請限制並排除
default-pool
,將應用程式的部署作業遷移到新節點集區。 -
安全遷移部署作業後,刪除 default-pool。
點選「Check my progress」確認目標已達成。
工作 3:套用前端更新
您剛完成所有部署作業,現在開發團隊希望您在發布前推送最終更新!這當然沒問題,您知道不需要停機就能做到這點。
-
為前端部署作業設定 Pod 中斷預算。
-
將其命名為 onlineboutique-frontend-pdb。
-
將部署作業的 min-availability 設為 1。
現在,您可以套用團隊更新了。他們更改了用於首頁橫幅的檔案,並向您提供更新的 Docker 映像檔:
-
編輯您的前端部署作業,將映像檔改為更新的映像檔。
-
編輯部署作業時,請將 ImagePullPolicy改為「Always」。
點選「Check my progress」確認目標已達成。
工作 4:根據預期流量自動調度資源
由於近期將舉辦行銷廣告活動,這會導致 OnlineBoutique 商店的流量激增。通常,您會提前啟動額外資源,以因應預期的流量高點。但是,如果流量高點遠超過預期,您可能就需要緊急啟動更多資源來因應額外負載。
此外,您也希望提升額外資源的運作效率,避免無謂浪費時間。為了降低成本並避免潛在問題,您可以設定 Kubernetes 部署作業,在負載開始驟增時自動調度資源。
-
對前端部署作業水平自動調度 Pod 資源,因應流量激增情形。
-
以 50% 的目標 CPU 百分比調度資源。
-
將 Pod 資源調度範圍設為 1 (下限) 到
(上限) 之間。
當然,您希望確保在部署作業調動資源時,使用者不會遇到停機情形。
-
為確保在不停機的情況下調度資源,請將部署作業設為當目標 CPU 百分比達到 50% 時,再調度資源。這樣在自動調度資源時,應該就會留有許多空間處理負載。
-
將部署作業設為在 1 個 Pod (下限) 到
個 Pod (上限) 間調度資源。
但如果高點超出目前佈建的運算資源,該怎麼辦?您可能需要新增額外的運算節點。
-
接著,確認叢集能夠在必要時,自動啟動額外的運算節點。然而,自動調度資源所能處理的情況,並不僅限於向上擴充。
-
請提前考慮應該設定的節點數下限與上限。這樣一來,叢集就能因應流量高低來增減節點。
-
更新叢集自動配置器,在 1 個節點 (下限) 到 6 個節點 (上限) 間調度資源。
點選「Check my progress」確認目標已達成。
- 最後,請執行負載測試,模擬流量激增情形。
好消息是,OnlineBoutique 在設計上內建負載生成功能。目前 dev 執行個體模擬的商店流量為同時約有 10 名使用者在線。
- 為了更準確複製此活動的預期流量,請使用以下指令,透過
loadgenerator
Pod 執行負載生成作業,提高同時在線的使用者人數。將 YOUR_FRONTEND_EXTERNAL_IP 替換為 frontend-external 服務的 IP 位址:
- 現在請觀察工作負載,監控叢集如何因應流量高點。
您應該會看到 recommendationservice
停止運作;如果沒那麼嚴重,也會因需求增加而出現問題。
- 針對 recommendationservice 部署作業水平自動調度 Pod 資源。請以 50% 的目標 CPU 百分比調度資源,並將 Pod 資源調度範圍設為 1 (下限) 到 5 (上限) 之間。
工作 5:(選用) 將其他服務最佳化
雖然對前端服務水平自動調度 Pod 資源,可在負載測試期間確保應用程式正常運作,但如果您監控其他工作負載,會發現系統針對特定資源大量推送某些工作負載。
如果您在完成實驗室工作後還有剩餘時間,不妨檢查其他幾項工作負載,藉由自動調度資源,嘗試根據適當的資源指標將工作負載最佳化。
您也可以看看能否透過自動佈建節點,進一步提升資源使用率。
恭喜!
恭喜!在本實驗室中,您成功將 OnlineBoutique 應用程式部署到 Google Kubernetes Engine,並按照建議做法更改了某些設定,以發揮最佳成本效益。對於前端和 recommendationservice 部署作業,您也已水平自動調度 Pod 資源,藉此因應流量激增情形。此外,您還透過自動調度資源,根據適當的資源指標,為其他服務完成最佳化。
取得下一枚技能徽章
這個自學實驗室屬於 Optimize Costs for Google Kubernetes Engine 技能徽章課程的一部分。完成這個課程即可獲得上方的徽章,表彰您的成就。您可以在履歷表和社群平台張貼徽章,並加上 #GoogleCloudBadge 公開這項成就。
Google Cloud 教育訓練與認證
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2024 年 4 月 29 日
實驗室上次測試日期:2024 年 4 月 29 日
Copyright 2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。