本页介绍了规划集群以与 Config Sync 搭配使用时的配置选项和要求。
如需详细了解 GKE 集群规划的一般最佳实践,请参阅 GKE 文档中的集群配置选项。
选择 GKE 操作模式
Config Sync 同时支持 Autopilot 和 Standard GKE 集群。
如需明智地选择使用哪种运维模式,请参阅 GKE 运维模式。
向舰队注册集群
Config Sync 要求集群已注册到舰队。
如果您计划使用 Google Cloud 控制台安装和配置 Config Sync,则可以在安装 Config Sync 的同时注册集群。
否则,您必须先向舰队注册集群,然后才能启用 Config Sync。
授予所需的权限
由于 Config Sync 要求集群注册到舰队,因此您在安装 Config Sync 时可能需要额外的权限。
如需获得将集群注册到舰队所需的权限,请让您的管理员为您授予项目的 Fleet Admin(以前称为 GKE Hub Admin)(roles/gkehub.admin
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
使用 Autopilot 模式的资源要求
GKE Autopilot 模式会自动修改资源请求,以保持工作负载的稳定性。如需了解如何规划这些请求,请查看 GKE 文档中的 Autopilot 资源请求。
由于 Autopilot 修改资源请求的方式,Config Sync 会进行以下调整:
- 调整用户指定的资源替换限制以匹配请求。
- 只有当存在一个或多个资源请求大于注解中声明的相应调整输出,或存在一个或多个资源请求小于注解中声明的相应输入时,才会应用替换。
支持的 GKE 平台和版本
如需使用 Config Sync,您的集群必须使用 GKE 支持的版本。
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 集群进行的一些更改,具体取决于您的网络设置。
如需详细了解 GKE 网络选择,请参阅网络概览。
专用集群
如果您使用专用集群,则应通过以下方式之一配置集群,以确保 Config Sync 拥有访问权限并可以向您的可靠来源进行身份验证:
启用专用 Google 访问通道,以连接到 Google API 和服务使用的一组外部 IP 地址。
公共集群
如果您使用的是公共集群,但有阻止所有不必要流量的严格 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 AWS 或 GKE on Azure:向 Arm 节点添加污点,以避免在没有相应容忍设置的情况下将 Pod 安排到 Arm 节点上。
- GKE:GKE 会添加默认污点,以确保没有相应容忍设置的工作负载不会安排到这些节点上。无需执行其他操作。