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

Google Kubernetes Engine (GKE) 提供具指導性的建議,協助您最佳化叢集。

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

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

GKE 會在 Cloud de Confiance 控制台中提供這項資訊,您也可以透過 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、Cloud de Confiance 控制台或 Recommender API 查看深入分析和建議。

控制台

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

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

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

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

    前往「Google Kubernetes Engine」

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

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

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

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

  1. 前往 Cloud de Confiance 控制台的「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:叢集所在專案的 Cloud de Confiance by S3NS 專案 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:叢集所在專案的 Cloud de Confiance by S3NS 專案 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」。

關閉或還原建議

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

如果關閉建議,在管理控制台中查看叢集時,所有使用者都不會看到這項建議。即使 GKE 偵測到相同行為,系統也不會再次顯示建議。

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

關閉建議

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

使用 Google Cloud CLI 關閉建議

如要使用 gcloud CLI 關閉建議,請找出有效建議的「etag 值」,然後將其標示為已關閉。

  1. 列出有效建議:如要找出要排除的建議,請列出叢集的有效建議。如要排除已關閉、成功或失敗的建議,請使用 --filter 旗標:

    gcloud recommender recommendations list \
        --recommender=RECOMMENDER_ID \
        --project=PROJECT_ID \
        --location=LOCATION \
        --filter="stateInfo.state=ACTIVE"
    

    更改下列內容:

    • RECOMMENDER_ID:建議事項 ID。
    • PROJECT_ID:叢集所在專案的 Cloud de Confiance by S3NS 專案 ID。
    • LOCATION:叢集的確切區域或可用區。如果是可用區叢集,您必須提供確切的可用區 (例如 us-central1-c)。如果是區域叢集,您必須提供確切的區域 (例如 us-central1)。
  2. 擷取 ETag:找出上一個輸出內容中的 RECOMMENDATION_ID,並加以說明,以擷取目前的狀態和 etag

    gcloud recommender recommendations describe RECOMMENDATION_ID \
        --recommender=RECOMMENDER_ID \
        --project=PROJECT_ID \
        --location=LOCATION
    

    更改下列內容:

    • RECOMMENDATION_ID:要關閉的建議 ID。

    記下輸出中的 etag 值 (例如 "a770e444b0088a35")。

  3. 標示為已關閉:執行 mark-dismissed 指令。為避免競爭狀況,Recommender API 需要確切的 etag

    gcloud recommender recommendations mark-dismissed RECOMMENDATION_ID \
        --recommender=RECOMMENDER_ID \
        --project=PROJECT_ID \
        --location=LOCATION \
        --etag='"ETAG_VALUE"'
    

    更改下列內容:

    • ETAG_VALUE:describe 指令傳回的 etag 值。

還原已關閉的建議

如要還原已略過的建議,請按照「還原建議」一文中的操作說明進行。

後續步驟