GKE 节点服务账号数据分析

本页面介绍 Google Kubernetes Engine (GKE) 节点服务账号的网络分析器数据分析。如需了解所有数据分析类型,请参阅数据分析组和类型

如需在 gcloud CLI 或 Recommender API 中查看这些数据分析,请使用以下数据分析类型:

  • google.networkanalyzer.container.serviceAccountInsight

您需要以下权限:

  • recommender.networkAnalyzerGkeServiceAccountInsights.list
  • recommender.networkAnalyzerGkeServiceAccountInsights.get

如需详细了解如何使用 Recommender API 获取网络分析器数据分析,请参阅使用 Recommender CLI 和 API

GKE 节点服务账号已停用

此数据分析表明,集群中的一个或多个池使用已停用的 GKE 节点服务账号,这可能会导致在停用服务账号时创建的任何集群引导和注册失败。

此数据分析包括以下信息:

  • 服务账号:是一种通常由应用或计算工作负载(例如 Compute Engine 实例)而非真人使用的特殊账号。该账号由其电子邮件地址(对该账号是唯一的)标识。Recommender API 中提供了此信息。
  • GKE 集群:GKE 集群的名称。
  • 节点池:使用已停用的服务账号的节点池列表。

如需了解详情,请参阅启用 Compute Engine 默认服务账号停用服务账号

建议

启用节点服务账号。如果受影响的节点池中存在未注册的节点,则这些节点将重启并正确注册到集群。所有节点可能需要一段时间才能重启。为快速解决问题,我们建议您将节点池大小调整为零个节点,再恢复为 X 个节点,或者创建使用同一节点服务账号的新节点池。

GKE 节点池使用 Compute Engine 默认服务账号

GKE 集群中的节点池使用 Compute Engine 默认服务账号作为其节点服务账号。此账号所需的权限超出了运行 Google Kubernetes Engine 集群所需的权限。

此数据分析包括以下信息:

  • GKE 集群:GKE 集群的名称。
  • 节点池:使用默认服务账号的节点池列表。

如需了解详情,请参阅使用最小权限服务账号

建议

请为您的节点创建和使用权限较低的服务账号,而不是 Compute Engine 默认服务账号。

GKE 节点池配置的访问权限范围错误

GKE 集群中的节点池已手动指定访问权限范围,但指定的范围不足以注册节点。

如果您的工作负载使用应用默认凭据 (ADC),则访问范围是为您的节点以及节点上运行的工作负载授予权限的传统方法。对于 GKE 节点,请始终至少使用默认范围,否则它们将无法注册。

此数据分析包括以下信息:

  • GKE 集群:GKE 集群的名称。
  • 节点池:访问权限范围配置错误的节点池列表。

如需了解详情,请参阅 GKE 中的访问权限范围

建议

将节点池替换为具有足够访问权限范围的节点池。要创建具有足够访问权限范围的节点池,请执行以下操作之一:

  • 在不指定访问权限范围的情况下创建新节点池。在 Google Cloud CLI 中,调用 gcloud container node-pools create 时,请勿添加 --scopes 标志。

    如需为节点上运行的工作负载授权,请使用 Identity and Access Management (IAM) 权限或 Kubernetes 基于角色的访问权限控制 (RBAC)。这是为了授予对特定 IAM 服务账号或 Kubernetes 服务账号的访问权限。如需了解详情,请参阅为工作负载配置自定义服务账号

  • 在手动指定的访问权限范围的新节点池列表中,添加以下范围。

    • https://www.googleapis.com/auth/devstorage.read_only
    • https://www.googleapis.com/auth/service.management.readonly
    • https://www.googleapis.com/auth/servicecontrol
    • https://www.googleapis.com/auth/trace.append
    • https://www.googleapis.com/auth/logging.write
    • https://www.googleapis.com/auth/monitoring.write