为集群准备 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

如需安全地连接到 Google Cloud服务,建议使用适用于 GKE 的工作负载身份联合。Autopilot 集群默认启用适用于 GKE 的工作负载身份联合。

如果您想将舰队软件包预览版)与 Config Sync 搭配使用,则必须使用适用于 GKE 的工作负载身份联合。

GKE 发布渠道

如果您希望 Config Sync 自动管理升级,建议您将集群注册到 GKE 发布渠道。Config Sync 自动升级功能会使用发布渠道来确定何时升级到新版本。

如果您启用了自动升级,但未在发布渠道中注册,则 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,并且未启用适用于 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