利用分析洞见和建议优化 GKE 使用


使用 Google Kubernetes Engine (GKE) 时,您可以收到有关如何优化集群的规范性指导。

GKE 会监控您的集群,如果有潜在的优化项,则通过 Recommender 提供指导。Recommender 是一项 Google Cloud 服务,它会生成有关 Google Cloud 上的资源使用的分析洞见和建议。对于 GKE,Recommender 提供两种类型的信息:

  • 分析洞见说明 GKE 检测到您可以通过某种方式优化集群使用。
  • 建议说明如何优化集群使用。

GKE 在 Google Cloud 控制台中提供此信息,您也可以使用 Google Cloud CLI 和 Recommender API 找到此信息。GKE 提供以下主题的 Recommender:

  • 弃用降低弃用 Kubernetes 功能或 API 的风险。
  • 操作和连接:解决与控制平面和节点连接以及 IP 地址利用率相关的问题。
  • 费用优化实施费用优化的配置和做法。 例如,识别空闲的 GKE 集群
  • Agones:隔离集群中的 Agones 控制器。
  • 中断:确保工作负载在维护期间的连续性和可恢复性。
  • 网络钩子:使用网络钩子时,请确保控制平面的稳定性。

须知事项

在开始之前,请确保您已执行以下任务:

  • 启用 Google Kubernetes Engine API。
  • 启用 Google Kubernetes Engine API
  • 如果您要使用 Google Cloud CLI 执行此任务,请安装初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行 gcloud components update 以获取最新版本。

所需的角色

确保您拥有 Kubernetes 分析洞见和建议所需的权限,可以使用以下基本角色预定义角色

查看分析洞见和建议

您可以使用 Google Cloud CLI、Google Cloud 控制台或 Recommender API 查看提示和建议。

控制台

  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 替换为 Recommender 子类型,例如 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 替换为 Recommender 子类型,例如 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 检测到此集群的相同行为,Recommender 会再次显示建议。解决建议后,您仍可通过 Google Cloud CLI 和 Recommender API 发现建议。

建议您将建议标记为已解决,因为根据 Recommender 的工作原理,在实施建议后的一段时间,您可能会继续看到该建议。

如需将建议标记为已解决,请按照在 Google Cloud 控制台中查看分析洞见和建议的说明操作,打开边栏面板,其中包含更多详细信息。在该面板中,点击标记为已解决按钮。

忽略或恢复建议

如果您不想再在 Google Cloud 控制台中看到集群的建议,请忽略该建议。例如,如果您已评估建议并决定不实施建议,则可以忽略建议。

如果您忽略建议,在控制台中查看该集群的任何用户都不会看到建议。忽略建议后,即使 GKE 检测到相同的行为,也不会再次显示建议。

如果您忽略某项建议,则只会对控制台中的所有用户隐藏该建议。用户仍可通过 Google Cloud CLI 和 Recommender API 发现该建议。

忽略建议

如需忽略建议,请按照在 Google Cloud 控制台中查看分析洞见和建议的说明操作,打开边栏面板,其中包含更多详细信息。在该面板中,点击忽略按钮。

恢复已忽略的建议

您可以按照恢复建议中的说明恢复已忽略的建议。

后续步骤