正在加载…
未找到任何结果。

Google Cloud Skills Boost

在 Google Cloud 控制台中运用您的技能

08

Optimize Costs for Google Kubernetes Engine

访问 700 多个实验和课程

Google Kubernetes Engine 成本效益最佳化:挑戰實驗室

实验 1 小时 30 分钟 universal_currency_alt 5 积分 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

GSP343

Google Cloud 自學實驗室標誌

簡介

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

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

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

這個實驗室僅適合 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 disruption budget。

  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

取得下一枚技能徽章

這個自學實驗室屬於 Google Kubernetes Engine 成本效益最佳化技能徽章課程的一部分。完成這個課程即可獲得上方的徽章,表彰您的成就。您可以在履歷表和社群平台張貼徽章,並加上 #GoogleCloudBadge 公開這項成就。

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2024 年 4 月 29 日

實驗室上次測試日期:2024 年 4 月 29 日

Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

上一步 下一步

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

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

太好了!

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

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
预览