透過深入分析和建議,最佳化 GKE 用量

Google Kubernetes Engine (GKE) 提供叢集最佳化建議。

GKE 會監控叢集,如果發現可進行的潛在最佳化作業,就會透過 Recommender (這項 Google Cloud 服務會產生在 Google Cloud上使用資源的深入分析和建議) 提供指引。對於 GKE,建議引擎會提供兩種類型的資訊:

  • 洞察會說明 GKE 偵測到叢集用量可透過某種方式進行最佳化。
  • 建議會說明如何最佳化叢集用量。

GKE 會在 Google Cloud 控制台中提供這項資訊,您也可以透過 Google Cloud CLI 和 Recommender API 找到這項資訊。GKE 提供下列主題的建議:

事前準備

開始之前,請確認您已完成下列工作:

  • 啟用 Google Kubernetes Engine API。
  • 啟用 Google Kubernetes Engine API
  • 如要使用 Google Cloud CLI 執行這項工作,請安裝初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行 gcloud components update 指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文件中的指令。

必要的角色

請確認您具備 Kubernetes 深入分析和建議的必要權限,方法是透過下列基本角色預先定義的角色

查看洞察資料和建議

您可以使用 Google Cloud CLI、Google Cloud 控制台或 Recommender API 查看深入分析和建議。

控制台

在控制台中查看建議時,您有兩個選項。您可以使用檢視畫面頂端的高階評量表,查看專案中所有叢集的健康狀態、升級和成本最佳化建議的匯總結果。

您也可以查看每個叢集的建議清單。

如要使用評分表查看建議,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面:

    前往「Google Kubernetes Engine」

  2. 如要查看個別最佳化建議影響的叢集數量,請按一下要查看類別 (健康狀態、升級或費用) 下方的「查看最佳化建議」。在顯示的側欄面板中,建議清單會指出各項建議影響的叢集數量。

  3. 如要查看詳細資訊 (包括受影響的叢集名稱),請按一下建議名稱。

  4. 如要查看每個受影響叢集的詳細資料,請再次點選建議。

如要查看各叢集的建議,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面:

    前往「Google Kubernetes Engine」

  2. 查看特定叢集的「通知」資料欄,取得洞察資料和建議。

  3. 如要查看更多資訊,請按一下洞察資料。在顯示的側邊面板中,您可以查看這項洞察資料的詳細資訊,包括任何相關建議。

gcloud

深入分析通常會提供相應的建議。洞察資料會透過 gcloud recommender insights 擷取,最佳化建議則會透過 gcloud recommender recommendations 擷取。

  1. 查看特定可用區 (適用於區域叢集) 或特定區域 (適用於區域叢集) 的叢集洞察資料清單:

    gcloud recommender insights list \
        --insight-type=google.container.DiagnosisInsight \
        --location=LOCATION \
        --project=PROJECT_ID \
        --format=FORMAT \
        --filter="insightSubtype:SUBTYPE"
    

    更改下列內容:

    • PROJECT_ID:叢集所在專案的 Google Cloud 專案 ID。
    • LOCATION:叢集的確切區域或可用區。 如果是可用區叢集,您必須提供確切的可用區 (例如 us-central1-c)。如果是區域叢集,您必須提供確切的區域 (例如 us-central1)。
    • FORMAT:將輸出格式變更為 YAML。這個旗標是選用的。
    • SUBTYPE洞察子類型,例如 DEPRECATION_K8S_1_23_CERTIFICATE。這會將輸出內容限制為指定子類型的洞察資料。這個旗標是選用的。

    或者,如果您已有洞察 ID,可以執行下列指令,查看洞察的詳細資料:

    gcloud recommender insights describe INSIGHT \
        --insight-type=google.container.DiagnosisInsight \
        --location=LOCATION \
        --project=PROJECT_ID \
        --format=FORMAT
    

    INSIGHT 替換為洞察 ID 的值,該值位於洞察的 name 欄位網址結尾。

    輸出內容會列出 GKE 偵測到的叢集行為詳細資料。

  2. 查看特定可用區 (適用於區域叢集) 或特定地區 (適用於地區叢集) 的叢集建議清單:

    gcloud recommender recommendations list \
        --recommender=google.container.DiagnosisRecommender \
        --location=LOCATION \
        --project=PROJECT_ID \
        --format=FORMAT \
        --filter="recommenderSubtype:SUBTYPE"
    

    SUBTYPE 替換為推薦子類型,例如 DEPRECATION_K8S_1_23_CERTIFICATE。這會將輸出內容限制為指定子類型的建議。這個旗標是選用的。

    或者,如果您已有最佳化建議 ID,可以執行下列指令來查看最佳化建議:

    gcloud recommender recommendations describe RECOMMENDATION_ID \
        --recommender=google.container.DiagnosisRecommender \
        --location=LOCATION \
        --project=PROJECT_ID \
        --format=FORMAT
    

    RECOMMENDATION_ID 替換為步驟 1 中指令輸出內容的 associatedRecommendations.recommendation 儲存值。

    輸出內容會提供指引,說明您可能需要採取哪些行動,才能最佳化叢集的 GKE 用量。

API

每項洞察資料都有對應的建議。深入分析資訊是透過 REST 資源:projects.locations.insightTypes.insights 擷取,建議則是透過 REST 資源:projects.locations.recommenders.recommendations 擷取。

  1. 查看特定可用區 (適用於區域叢集) 或特定區域 (適用於區域叢集) 的叢集洞察資料清單:

    GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights?filter=insightSubtype%20%3D%20SUBTYPE
    

    更改下列內容:

    • PROJECT_ID:叢集所在專案的 Google Cloud 專案 ID。
    • LOCATION:叢集的確切區域或可用區。 如果是可用區叢集,您必須提供確切的可用區 (例如 us-central1-c)。如果是區域叢集,您必須提供確切的區域 (例如 us-central1)。
    • SUBTYPE洞察子類型,例如 DEPRECATION_K8S_1_23_CERTIFICATE。這會將輸出內容限制為指定子類型的洞察資料。這個旗標是選用的。

    或者,如果您已有洞察 ID,可以發出下列要求,查看洞察的詳細資料:

    GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights/INSIGHT
    

    INSIGHT 替換為洞察 ID 的值,該值位於洞察的 name 欄位網址結尾。

    回應主體會詳細說明 GKE 在叢集中偵測到的行為。

  2. 查看特定可用區 (適用於區域叢集) 或特定地區 (適用於地區叢集) 的叢集建議清單:

    GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.container.DiagnosisRecommender/recommendations?filter=recommenderSubtype%20%3D%20SUBTYPE
    

    SUBTYPE 替換為推薦子類型,例如 DEPRECATION_K8S_1_23_CERTIFICATE。這會將輸出內容限制為指定子類型的建議。這個旗標是選用的。

    或者,如果您已有建議 ID,可以提出下列要求來查看建議:

    GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.container.DiagnosisRecommender/recommendations/RECOMMENDATION_ID
    

    RECOMMENDATION_ID 替換為步驟 1 回應主體中儲存的 associatedRecommendations.recommendation 值。

    回應主體會提供指引,說明您可能需要採取哪些動作,才能最佳化叢集的 GKE 使用情形。

將洞察資料和建議匯出至 BigQuery

您可以使用 BigQuery 匯出及分析整個機構的洞察資料和建議。詳情請參閱「將建議匯出至 BigQuery」。

關閉或還原建議

如果不想再於Google Cloud 控制台中看到叢集建議,請將其關閉。舉例來說,如果您評估過最佳化建議,並決定不採用,就可以這麼做。

如果選擇忽略建議,管理控制台中的叢集就不會向任何使用者顯示該建議。即使 GKE 偵測到相同行為,系統也不會再次顯示建議。

關閉建議後,系統只會為控制台中的所有使用者隱藏建議。您仍可透過 Google Cloud CLI 和 Recommender API 探索建議。

關閉建議

如要關閉這項建議,請按照查看洞察資料和最佳化建議一文中的說明,在Google Cloud 控制台中開啟側欄面板,查看更多詳細資料。 然後按一下該面板中的「關閉」按鈕。

還原已關閉的建議

如要還原已關閉的最佳化建議,請按照「還原最佳化建議」一文中的操作說明進行。

後續步驟