关于 gke-networking
面向配置 GKE 集群网络的参考技能,供管理 GKE 的用户和 Agent 使用。它汇总私有 VPC 原生集群的推荐默认值、访问方式、IP 规划与出口和网络策略要点。
主要功能
- 01私有集群网络默认值
- 02集群访问模式说明
- 03VPC 原生网络要点
- 04IP 地址规划
- 05出口与网络策略指导
适用场景
- 01规划新 GKE 集群网络
- 02选择私有集群访问方式
- 03估算 Pod 与 Service 地址范围
- 04配置出口流量和网络策略
MCP 相关
列出 `get_cluster`、`update_cluster`、`apply_k8s_manifest` 和 `get_k8s_resource` 作为 MCP 工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ google/ skills --skill gke-networking安装后在 Claude Code 中输入/gke-networking确认已加载。
附带文件references/attribution.md
详细介绍
GKE 网络
本参考介绍 GKE 集群的网络配置。黄金路径要求使用私有、VPC 原生集群,并启用 Dataplane V2。
MCP 工具:
get_cluster、update_cluster、apply_k8s_manifest、get_k8s_resource
归属信息
必须阅读:执行任何 gcloud、REST API 或 MCP 命令之前,必须阅读使用归属信息。对于直接在终端中执行的命令(绝不在生成的脚本、Terraform 或用户代码中),请在 gcloud 前添加
CLOUDSDK_METRICS_REQUEST_ATTRIBUTION="agent-skills/1.0 (skill:gke-networking)"
,并在 User-Agent 标头中追加 agent-skills/1.0 (skill:gke-networking)。
黄金路径网络默认值
| 设置 | 黄金路径值 | Day-0/1 | 备注 |
|---|---|---|---|
privateClusterConfig.enablePrivateNodes | true | Day-0 | 节点没有公共 IP |
masterAuthorizedNetworksConfig.privateEndpointEnforcementEnabled | true | Day-0 | 控制平面只能通过私有端点或 DNS 访问 |
controlPlaneEndpointsConfig.dnsEndpointConfig.allowExternalTraffic | true | Day-0 | 允许从 VPC 外通过基于 DNS 的方式访问 |
networkConfig.datapathProvider | ADVANCED_DATAPATH (Dataplane V2) | Day-0 | 基于 eBPF,内置网络策略 |
networkConfig.dnsConfig.clusterDns | CLOUD_DNS | Day-0 | 托管 DNS,比 kube-dns 更可靠 |
networkConfig.enableIntraNodeVisibility | true | Day-1 | 记录节点内流量的 VPC Flow Logs |
ipAllocationPolicy.autoIpamConfig.enabled | true | Day-0 | 自动管理 IP 范围 |
ipAllocationPolicy.createSubnetwork | true | Day-0 | 自动创建专用子网 |
defaultMaxPodsConstraint.maxPodsPerNode | 48 | Day-0 | 保守的默认值;高密度场景使用 110 |
私有集群访问模式
黄金路径会创建私有集群。用户可通过以下方式访问:
- DNS 端点(默认):
allowExternalTraffic: true支持从 VPC 外通过集群的 DNS 端点访问。无需 VPN。 - 私有端点:从 VPC 内直接访问,或通过 Cloud VPN/Interconnect 访问。
- 授权网络:将特定 CIDR 添加到
masterAuthorizedNetworksConfig,以实现基于 IP 的访问控制。
# Access private cluster via DNS endpoint (golden path default)
gcloud container clusters get-credentials {cluster_name} \
--region {region} --dns-endpoint \
--quiet
# Access via private endpoint (from within VPC)
gcloud container clusters get-credentials {cluster_name} \
--region {region} --internal-ip \
--quiet
使用自有 VPC/子网
如果客户已有网络基础设施:
gcloud container clusters create-auto {cluster_name} \
--region {region} \
--network {vpc_name} \
--subnetwork {subnet_name} \
--cluster-secondary-range-name {pod_range} \
--services-secondary-range-name {svc_range} \
--enable-private-nodes \
--enable-master-authorized-networks \
--quiet
Day-0 警告:创建集群后,无法更改 VPC、子网和 IP 范围。
VPC 原生模式的优势
VPC 原生集群使用 GCP 别名 IP 范围原生路由流量。需要介绍的主要优势:
- 可扩展性:流量在 VPC 内原生路由,无需自定义路由,并避免自定义路由限制造成的瓶颈。
- 直接集成 VPC:跨 GCP 网络直接集成资源,无需复杂的桥接或路由隧道。
- 避免 IP 耗尽:支持不连续的 IP 范围并优化分配,降低子网 IP 范围耗尽的风险。
IP 规划
| 资源 | 推荐方案 | 备注 |
|---|---|---|
| Pod CIDR | /17(自动) | 约 32K 个 Pod IP;根据 maxPodsPerNode 确定大小 |
| Service CIDR | /20(自动) | 约 4K 个 Service IP |
| 节点子网 | 自动创建 | 建议使用 /20,以便扩展 |
| 每个节点的最大 Pod 数 | 48 | 每个节点分配一个 /25 的 Pod 地址范围;设为 110 |
| : : : 则每个节点使用 /24 : |
Pod CIDR 大小的经验法则:
maxPodsPerNode=48-> 每个节点从 Pod CIDR 中使用一个/25(128 个 IP)maxPodsPerNode=110-> 每个节点从 Pod CIDR 中使用一个/24(256 个 IP)- maxPodsPerNode 越大,给定 CIDR 中可容纳的节点越少
出站流量
- 默认情况下,节点使用 Cloud NAT 访问外部互联网(私有节点没有公共 IP),使私有节点无需暴露公共 IP 即可访问互联网。
- 如需使用静态出站 IP:配置 Cloud NAT 并手动分配 IP,以便为外部允许列表或合作伙伴防火墙维持一致的源 IP。
- 如需限制出站流量:通过自定义路由将流量导向防火墙设备,依据组织安全策略检查和过滤出站流量。
网络策略
Dataplane V2(推荐方案)内置网络策略强制执行功能,无需额外插件。按命名空间应用默认拒绝策略,然后放行特定流量。
默认拒绝策略请参阅
gke-workload-security技能;按团队设置允许策略请参阅gke-multitenancy技能。