arrow_back

Optimize Costs for Google Kubernetes Engine:挑戰實驗室

登录 加入
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

Optimize Costs for Google Kubernetes Engine:挑戰實驗室

实验 1 小时 30 分钟 universal_currency_alt 5 积分 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

GSP343

Google Cloud 自修研究室標誌

簡介

在挑戰研究室中,您會在特定情境下完成一系列任務。挑戰研究室不會提供逐步說明,您將運用從課程研究室學到的技巧,自行找出方法完成任務!自動評分系統 (如本頁所示) 將根據您是否正確完成任務來提供意見回饋。

在您完成任務的期間,挑戰研究室不會介紹新的 Google Cloud 概念。您須靈活運用所學技巧,例如變更預設值或詳讀並研究錯誤訊息,解決遇到的問題。

若想滿分達標,就必須在時限內成功完成所有任務!

這個實驗室僅適合 Optimize Costs for Google Kubernetes Engine 課程的學員。準備好迎接挑戰了嗎?

設定和需求

點選「Start Lab」按鈕前的須知事項

請詳閱以下操作說明。研究室活動會計時,而且中途無法暫停。點選「Start Lab」 後就會開始計時,讓您瞭解有多少時間可以使用 Google Cloud 資源。

您將在真正的雲端環境中完成實作研究室活動,而不是在模擬或示範環境。為達此目的,我們會提供新的暫時憑證,讓您用來在研究室活動期間登入及存取 Google Cloud。

如要完成這個研究室活動,請先確認:

  • 您可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意:請使用無痕模式或私密瀏覽視窗執行此研究室。這可以防止個人帳戶和學生帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成研究室活動了!別忘了,活動一開始將無法暫停。
注意:如果您擁有個人 Google Cloud 帳戶或專案,請勿用於本研究室,以免產生額外費用。

挑戰情境

您是 Google Kubernetes Engine 首席管理員,旗下團隊負責管理 OnlineBoutique 的線上商店。

您準備要將團隊網站部署到 Google Kubernetes Engine,但仍在尋找確實能降低成本並提高效能的方法。

您的職責是將 OnlineBoutique 應用程式部署到 GKE,並依建議變更部分設定,以符合最佳成本效益。

以下是部署時須遵守的一些準則:

  • 可用區建立叢集。
  • 採用 team-resource-number 的命名結構,例如可將叢集命名為
  • 如果是初始叢集,請從 e2-standard-2 (2 vCPU, 8G memory) 這個機器大小開始。
  • 將叢集設為使用快速 release-channel

工作 1:建立叢集並部署應用程式

  1. 您需先在 可用區建立叢集,並命名為 ,才可以部署應用程式。

  2. 從小規模開始,建立一個只含兩 (2) 個節點的可用區叢集。

  3. 部署商店前,請務必根據 devprod 這 2 個環境,設定一些命名空間,分隔叢集上的資源。

  4. 之後,透過以下指令將應用程式部署到 dev 命名空間:

git clone https://github.com/GoogleCloudPlatform/microservices-demo.git && cd microservices-demo && kubectl apply -f ./release/kubernetes-manifests.yaml --namespace dev

點選「Check my progress」確認目標已達成。 建立叢集 並部署應用程式

工作 2:遷移至已最佳化的節點集區

  1. 將應用程式順利部署到 dev 命名空間後,請查看節點詳細資料:

節點詳細資料表

您得到結論,應該要調整叢集的節點集區:

  • 目前部署作業中還留有不少 RAM,因此您應可與提供較少 RAM的機器共用節點集區。
  • 在大多數部署作業中,如果您考慮提高備用資源數量,每增加一個 Pod 將僅需要 100 個 mCPU。如果您將節點集區設為使用較小的機器,則可使用總 CPU 較少的節點集區。不過,您也需考量有多少部署作業需要調度資源,以及需採取怎樣的資源調度率。
  1. 建立名為 的新節點集區,並將機型指定為 custom-2-3584

  2. 節點數設為 2

  3. 新節點集區設定完成後,請限制並排除 default-pool,將應用程式的部署作業遷移到新節點集區。

  4. 安全遷移部署作業後,刪除 default-pool。

點選「Check my progress」確認目標已達成。 遷移至已最佳化的節點集區

工作 3:套用前端更新

您剛完成所有部署作業,現在開發團隊希望您在發布前推送最終更新!這當然沒問題,您知道不需要停機就能做到這點。

  1. 前端部署作業設定 Pod 中斷預算。

  2. 將其命名為 onlineboutique-frontend-pdb

  3. 將部署作業的 min-availability 設為 1

現在,您可以套用團隊更新了。他們更改了用於首頁橫幅的檔案,並向您提供更新的 Docker 映像檔:

gcr.io/qwiklabs-resources/onlineboutique-frontend:v2.1
  1. 編輯您的前端部署作業,將映像檔改為更新的映像檔。

  2. 編輯部署作業時,請將 ImagePullPolicy改為「Always」

點選「Check my progress」確認目標已達成。 套用前端更新

工作 4:根據預期流量自動調度資源

由於近期將舉辦行銷廣告活動,這會導致 OnlineBoutique 商店的流量激增。通常,您會提前啟動額外資源,以因應預期的流量高點。但是,如果流量高點遠超過預期,您可能就需要緊急啟動更多資源來因應額外負載。

此外,您也希望提升額外資源的運作效率,避免無謂浪費時間。為了降低成本並避免潛在問題,您可以設定 Kubernetes 部署作業,在負載開始驟增時自動調度資源。

  1. 前端部署作業水平自動調度 Pod 資源,因應流量激增情形。

  2. 以 50% 的目標 CPU 百分比調度資源。

  3. 將 Pod 資源調度範圍設為 1 (下限) 到 (上限) 之間。

當然,您希望確保在部署作業調動資源時,使用者不會遇到停機情形。

  1. 為確保在不停機的情況下調度資源,請將部署作業設為當目標 CPU 百分比達到 50% 時,再調度資源。這樣在自動調度資源時,應該就會留有許多空間處理負載。

  2. 將部署作業設為在 1 個 Pod (下限) 到 個 Pod (上限) 間調度資源。

但如果高點超出目前佈建的運算資源,該怎麼辦?您可能需要新增額外的運算節點。

  1. 接著,確認叢集能夠在必要時,自動啟動額外的運算節點。然而,自動調度資源所能處理的情況,並不僅限於向上擴充。

  2. 請提前考慮應該設定的節點數下限與上限。這樣一來,叢集就能因應流量高低來增減節點。

  3. 更新叢集自動配置器,在 1 個節點 (下限) 到 6 個節點 (上限) 間調度資源。

點選「Check my progress」確認目標已達成。 根據預期流量自動調度資源

  1. 最後,請執行負載測試,模擬流量激增情形。

好消息是,OnlineBoutique 在設計上內建負載生成功能。目前 dev 執行個體模擬的商店流量為同時約有 10 名使用者在線。

  1. 為了更準確複製此活動的預期流量,請使用以下指令,透過 loadgenerator Pod 執行負載生成作業,提高同時在線的使用者人數。將 YOUR_FRONTEND_EXTERNAL_IP 替換為 frontend-external 服務的 IP 位址:
kubectl exec $(kubectl get pod --namespace=dev | grep 'loadgenerator' | cut -f1 -d ' ') -it --namespace=dev -- bash -c 'export USERS=8000; locust --host="http://YOUR_FRONTEND_EXTERNAL_IP" --headless -u "8000" 2>&1'
  1. 現在請觀察工作負載,監控叢集如何因應流量高點。

您應該會看到 recommendationservice 停止運作;如果沒那麼嚴重,也會因需求增加而出現問題。

  1. 針對 recommendationservice 部署作業水平自動調度 Pod 資源。請以 50% 的目標 CPU 百分比調度資源,並將 Pod 資源調度範圍設為 1 (下限) 到 5 (上限) 之間。
注意:負載測試中的資源調度程序,加上佈建任一新節點的過程,會需要幾分鐘的時間。

工作 5:(選用) 將其他服務最佳化

雖然對前端服務水平自動調度 Pod 資源,可在負載測試期間確保應用程式正常運作,但如果您監控其他工作負載,會發現系統針對特定資源大量推送某些工作負載。

如果您在完成實驗室工作後還有剩餘時間,不妨檢查其他幾項工作負載,藉由自動調度資源,嘗試根據適當的資源指標將工作負載最佳化。

您也可以看看能否透過自動佈建節點,進一步提升資源使用率。

恭喜!

恭喜!在本實驗室中,您成功將 OnlineBoutique 應用程式部署到 Google Kubernetes Engine,並按照建議做法更改了某些設定,以發揮最佳成本效益。對於前端和 recommendationservice 部署作業,您也已水平自動調度 Pod 資源,藉此因應流量激增情形。此外,您還透過自動調度資源,根據適當的資源指標,為其他服務完成最佳化。

Optimize_Costs_for_Google_Kubernetes_Engine_Skill_badge_WBG.png

取得下一枚技能徽章

這個自學實驗室屬於 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 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您