为 Config Sync 准备集群

本页介绍了规划集群以与 Config Sync 搭配使用时的配置选项和要求。

如需详细了解 GKE 集群规划的一般最佳实践,请参阅 GKE 文档中的集群配置选项

使用 Autopilot 模式的资源要求

GKE Autopilot 模式会自动修改资源请求,以保持工作负载的稳定性。如需了解如何规划这些请求,请查看 GKE 文档中的 Autopilot 资源请求

由于 Autopilot 修改资源请求的方式,Config Sync 会进行以下调整:

  • 调整用户指定的资源替换限制以匹配请求
  • 只有当存在一个或多个资源请求大于注解中声明的相应调整输出,或存在一个或多个资源请求小于注解中声明的相应输入时,才会应用替换。

支持的 GKE Enterprise 平台和版本

如需使用 Config Sync,您的集群必须使用 GKE Enterprise 支持的平台和版本

Workload Identity Federation for GKE

建议您使用 Workload Identity Federation for GKE 来安全地连接到 Google Cloud服务。Autopilot 集群默认启用 Workload Identity Federation for GKE。

如果您想将舰队软件包预览版)与 Config Sync 搭配使用,则 Workload Identity Federation for GKE 是必需的。

如果您在 GKE 关联集群上安装了 Config Sync,则无法将 Active Directory 与工作负载身份联合搭配使用。存在此限制是因为 Config Sync 使用 Connect 网关连接到 GKE 关联集群,而 Connect 网关不支持此功能。

GKE 发布渠道

如果您启用了 Config Sync 自动升级,我们建议您还应在 GKE 发布渠道中注册集群。Config Sync 自动升级使用 GKE 发布渠道来决定要以哪个版本为目标。这样一来,Config Sync 和 GKE 便可共享您选择的兼顾功能可用性和稳定性的版本。

如果您启用了自动升级但未在发布渠道中注册,Config Sync 会将该集群视为使用稳定发布渠道,以此管理它的升级。

网络

以下部分列出了您可能需要对 GKE 集群进行的一些更改,具体取决于您的网络设置。

如需详细了解 GKE 网络选择,请参阅网络概览

专用集群

如果您使用专用集群,则应通过以下方式之一配置集群,以确保 Config Sync 拥有访问权限并可以向您的可靠来源进行身份验证:

公共集群

如果您使用的是公共集群,但有阻止所有不必要流量的严格 VPC 防火墙要求,则必须创建防火墙规则来允许以下流量:

  • TCP:允许端口 53 和 443 上的入站流量和出站流量
  • UDP:允许端口 53 上的出站流量

如果您未添加这些规则,Config Sync 将无法正确同步,并且 nomos status 会报告以下错误:

Error: KNV2004: unable to sync repo Error in the git-sync container

使用 Compute Engine 默认服务账号身份验证的 Cloud Source Repositories

如果您使用 Config Sync 连接到 Cloud Source Repositories,并且未启用 Workload Identity Federation for GKE,则可以使用 Compute Engine 默认服务账号进行身份验证。您必须为集群中的节点使用访问权限范围和只读范围。

如需添加 Cloud Source Repositories 的只读范围,您可以在创建集群时指定的 --scopes 列表中包含 cloud-source-repos-ro,或在创建集群时使用 cloud-platform 范围。例如:

gcloud container clusters create CLUSTER_NAME --scopes=cloud-platform

CLUSTER_NAME 替换为您的集群名称。

创建节点池后,您将无法修改访问权限范围。但是,您可以在使用同一集群时创建具有适当访问权限范围的新节点池。默认的 gke-default 范围不包含 cloud-source-repos-ro

Arm 节点

Config Sync 只能在基于 x86 的节点上运行,而不能在 Arm 节点上运行。但是,如果您需要在具有多种架构的集群上运行 Config Sync,请根据集群类型执行以下操作:

  • GKE on AWSGKE on Azure:向 Arm 节点添加污点,以避免在没有相应容忍设置的情况下将 Pod 安排到 Arm 节点上。
  • GKE:GKE 会添加默认污点,以确保没有相应容忍设置的工作负载不会安排到这些节点上。无需执行其他操作。

后续步骤

安装 Config Sync