关于 gke-golden-path
面向生产环境 GKE Autopilot 集群配置的指导技能,适用于规划、创建或审查集群的用户和 Agent。它定义安全、网络、监控等默认配置,并强调 Day-0 决策、偏离默认值的权衡和升级中断风险。
主要功能
- 01生产集群推荐默认值
- 02Day-0 与 Day-1 决策指导
- 03安全与网络配置基线
- 04现有集群偏差审查
- 05升级中断与缓解建议
适用场景
- 01规划生产环境 Autopilot 集群
- 02根据需求调整默认配置
- 03审查集群配置偏差
- 04准备节点升级和工作负载韧性
MCP 相关
列出 `get_cluster`、`create_cluster` 和 `update_cluster` 作为 MCP 工具,并建议优先使用 MCP 而非 `gcloud` 或 `kubectl`。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ google/ skills --skill gke-golden-path安装后在 Claude Code 中输入/gke-golden-path确认已加载。
附带文件assets/golden-path-autopilot.yamlreferences/attribution.md
详细介绍
GKE Golden Path 配置
Golden Path 是推荐用于生产集群的 Autopilot 配置。它定义了合理的默认值——如果用户要求采用不同设置,请按要求设置,并说明相关权衡。若要专门设置自动扩缩,请使用 gke-cluster-autoscaler 进行节点自动扩缩,或使用 gke-workload-scaling 进行工作负载自动扩缩(HPA/VPA)。
MCP 工具:
get_cluster、create_cluster、update_cluster
归属信息
必须阅读:在执行任何 gcloud、REST API 或 MCP 命令之前,必须阅读 Usage Attribution。对于直接在终端中执行的命令(绝不在生成的脚本、Terraform 或用户代码中执行),请为 gcloud 添加前缀 CLOUDSDK_METRICS_REQUEST_ATTRIBUTION="agent-skills/1.0 (skill:gke-golden-path)",并在 User-Agent 标头中追加 agent-skills/1.0 (skill:gke-golden-path)。
规则
- 默认采用 Golden Path。 除非用户另有要求,否则使用 Golden Path 值。偏离时请说明权衡,但尊重用户的选择。
- Day-0 与 Day-1。 突出标明 Day-0 决策(网络、私有节点、子网、IP 分配)——集群创建后,这些配置很难更改,甚至无法更改。
- 工具优先级:MCP > gcloud > kubectl。 优先使用 MCP,因为它可通过结构化数据直接与 GKE API 交互,从而减少 Shell 语法错误和解析歧义。完整的覆盖范围矩阵和选项说明,请参阅
gke-basics技能的 CLI 参考。如果用户说“使用 gcloud”或“使用 kubectl”,请在本次会话中遵从。 - 记录决策及其理由,尤其是 Day-0 选择和偏离 Golden Path 的情况。
必需输入
如果用户不确定,请使用 Golden Path 默认值。
- 项目 ID(必需)
- 区域(必需,例如
us-central1) - 集群名称(必需)
- 环境类型:开发/测试或生产(默认为生产)
- 网络:自带 VPC/子网或自动创建(默认:自动创建)
- 规模预期:预期节点/Pod 数量、工作负载类型
- 成本限制:对 Spot VM 的接受程度、预算考量
始终应用的默认设置
默认应用的推荐最佳实践。如果用户要求使用不同设置,请按要求执行,并简要说明相关的安全或运维权衡。
| 设置 | 黄金路径值 |
|---|---|
autopilot.enabled | true |
privateClusterConfig.enablePrivateNodes | true |
masterAuthorizedNetworksConfig.privateEndpointEnforcementEnabled | true |
secretManagerConfig.enabled + rotationInterval: 120s | true |
rbacBindingConfig.enableInsecureBinding* | false(两项均如此) |
workloadIdentityConfig.workloadPool | 已启用 |
networkConfig.datapathProvider | ADVANCED_DATAPATH |
networkConfig.dnsConfig.clusterDns | CLOUD_DNS |
autoscaling.autoscalingProfile | OPTIMIZE_UTILIZATION |
verticalPodAutoscaling.enabled | true |
monitoringConfig 组件 | SYSTEM_COMPONENTS、STORAGE、POD、DEPLOYMENT、STATEFULSET、DAEMONSET、HPA、JOBSET、CADVISOR、KUBELET、DCGM、APISERVER、SCHEDULER、CONTROLLER_MANAGER |
loggingConfig 组件 | SYSTEM_COMPONENTS、WORKLOADS(默认已启用) |
advancedDatapathObservabilityConfig.enableMetrics | true |
nodeConfig.shieldedInstanceConfig.enableSecureBoot | true |
nodeConfig.workloadMetadataConfig.mode | GKE_METADATA |
nodeConfig.gcfsConfig.enabled / gvnic.enabled | true / true |
addonsConfig.statefulHaConfig.enabled | true |
| 存储 CSI 驱动程序(Filestore、GCS FUSE、Parallelstore) | 已启用 |
| Pod 安全标准 | 生产命名空间设为 restricted |
客户可配置的设置
这些设置有黄金路径默认值,但客户可在有正当理由时进行调整。更改前请先询问。
| 设置 | 默认值 | 调整原因 |
|---|---|---|
dnsEndpointConfig.allowExternalTraffic | true | 如果集群仅从 VPC 内部访问,则限制外部流量 |
autoIpamConfig / createSubnetwork | true / true | 客户已有 VPC/子网 |
maxPodsPerNode | 48(此黄金路径的选择) | 将每个节点的 IP 消耗减半(使用 /25 而非 /24)。这不是 GKE 默认值(Standard 默认值为 110,Autopilot 默认值为 32);如需提高 Pod 密度,可调高该值,但会占用更多 CIDR 空间 |
subnetwork | 自动创建 | 客户使用现有子网 |
| 发布渠道 + 维护时段 | REGULAR 渠道,搭配定期维护时段 | 仅针对关键冻结期添加有针对性的维护排除项(时长保持在约 6 个月以内)——请参阅 gke-upgrades 技能 |
nodeConfig.bootDisk.diskType | pd-balanced | I/O 密集型场景使用 pd-ssd,注重成本时使用 pd-standard |
注意:Autopilot 会自动选择节点机器类型(例如, describe 输出中可能会显示
ek-standard-8);在 Autopilot 中,客户无法配置机器类型。请改用 ComputeClasses 来引导工作负载的放置位置。
防护原则
- 不要请求或输出机密信息(令牌、密钥、服务账号 JSON)。
- 从对话、MCP 工具或
gcloud config get-value project中确定项目/集群上下文;仅在无法确定时询问用户。 - 对于 Day-0 决策,务必先提出澄清问题,再继续操作。
- 对于 Day-1 功能,提出包含权衡因素的推荐路径默认设置,并让客户确认。
- 不要承诺零停机时间——请参阅下文的升级中断说明,了解应如何提供建议。
- 审计现有集群时,应与推荐路径进行比较,并报告偏差、严重程度和补救措施。
升级中断
在任何配置下,都不要承诺节点升级可以实现零停机。 节点升级会对节点进行隔离和排空,从而驱逐 Pod。排空过程会遵守 PodDisruptionBudgets 和 terminationGracePeriodSeconds,最长可达一小时;之后,GKE 会强制驱逐剩余的 Pod,以便继续升级。PDB 会缩短中断窗口,但无法阻止升级。应明确说明这一点,不要暗示可以消除中断。
建议采取以下全部四项措施,不可只选其中一部分:
-
PodDisruptionBudgets:设置
minAvailable,确保驱逐不会导致最后一个健康副本被移除。若 PDB 永远无法满足条件,排空会卡住一小时,之后 Pod 仍会丢失。 -
至少 2 个副本:使用拓扑分布约束,将副本分散到不同可用区。单副本 Deployment 必然会出现停机。
-
就绪探针:使其能反映实际服务健康状况,以便在 Pod 终止前排空流量。
-
节点池上的突增升级设置。突增是默认策略;默认值为
maxSurge=1、maxUnavailable=0——先创建一个额外节点并使其就绪,再排空旧节点。设置 控制内容 默认值 maxSurge升级期间每个可用区新增的节点数 1maxUnavailable每个可用区同时不可用的节点数 0同时升级的节点数为这两个值的总和,上限为 20(Autopilot)和 100(Standard)。多可用区节点池会逐个可用区升级。提高
maxUnavailable会以可用性换取速度;提高maxSurge会以成本换取可用性。
注意:
externalTrafficPolicy: Local无法与并行节点排空配合使用,因此会限制激进的突增配置。
有关回滚流程和维护时段,请参阅 gke-upgrades 技能。
推荐路径配置
完整的集群级策略设置请参阅 golden-path-autopilot.yaml。