使用 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 查看提示和建议。
控制台
转到 Google Cloud 控制台中的 Google Kubernetes Engine 页面:
查看特定集群的通知列,以找到分析洞见。
点击具体的提示可显示更多信息。在显示的边栏面板中,您可以查看有关此分析洞见的详细信息,包括任何关联的建议。
gcloud
分析洞见通常有相应的建议。使用 gcloud recommender insights
提取提示,使用 gcloud recommender recommendations
提取建议。
查看特定可用区(对于可用区级集群)或特定区域(对于区域级集群)的集群的提示列表:
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 检测到的集群行为的其他详细信息。
查看特定可用区(对于可用区级集群)或特定区域(对于区域级集群)的集群的建议列表:
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 提取建议。
查看特定可用区(对于可用区级集群)或特定区域(对于区域级集群)的集群的提示列表:
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 检测到的集群行为的详细信息。
查看特定可用区(对于可用区级集群)或特定区域(对于区域级集群)的集群的建议列表:
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 控制台中查看分析洞见和建议的说明操作,打开边栏面板,其中包含更多详细信息。在该面板中,点击忽略按钮。
恢复已忽略的建议
您可以按照恢复建议中的说明恢复已忽略的建议。
后续步骤
- 详细了解 Recommender