mcpField
G
gke-networking

gke-networking

github.com/google云与 DevOps21.6k6.7k 次安装今天更新
代码仓库

关于 gke-networking

面向配置 GKE 集群网络的参考技能,供管理 GKE 的用户和 Agent 使用。它汇总私有 VPC 原生集群的推荐默认值、访问方式、IP 规划与出口和网络策略要点。

主要功能

  1. 01私有集群网络默认值
  2. 02集群访问模式说明
  3. 03VPC 原生网络要点
  4. 04IP 地址规划
  5. 05出口与网络策略指导

适用场景

  1. 01规划新 GKE 集群网络
  2. 02选择私有集群访问方式
  3. 03估算 Pod 与 Service 地址范围
  4. 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.enablePrivateNodestrueDay-0节点没有公共 IP
masterAuthorizedNetworksConfig.privateEndpointEnforcementEnabledtrueDay-0控制平面只能通过私有端点或 DNS 访问
controlPlaneEndpointsConfig.dnsEndpointConfig.allowExternalTraffictrueDay-0允许从 VPC 外通过基于 DNS 的方式访问
networkConfig.datapathProviderADVANCED_DATAPATH (Dataplane V2)Day-0基于 eBPF,内置网络策略
networkConfig.dnsConfig.clusterDnsCLOUD_DNSDay-0托管 DNS,比 kube-dns 更可靠
networkConfig.enableIntraNodeVisibilitytrueDay-1记录节点内流量的 VPC Flow Logs
ipAllocationPolicy.autoIpamConfig.enabledtrueDay-0自动管理 IP 范围
ipAllocationPolicy.createSubnetworktrueDay-0自动创建专用子网
defaultMaxPodsConstraint.maxPodsPerNode48Day-0保守的默认值;高密度场景使用 110

私有集群访问模式

黄金路径会创建私有集群。用户可通过以下方式访问:

  1. DNS 端点(默认):allowExternalTraffic: true 支持从 VPC 外通过集群的 DNS 端点访问。无需 VPN。
  2. 私有端点:从 VPC 内直接访问,或通过 Cloud VPN/Interconnect 访问。
  3. 授权网络:将特定 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 范围原生路由流量。需要介绍的主要优势:

  1. 可扩展性:流量在 VPC 内原生路由,无需自定义路由,并避免自定义路由限制造成的瓶颈。
  2. 直接集成 VPC:跨 GCP 网络直接集成资源,无需复杂的桥接或路由隧道。
  3. 避免 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 技能。

评论

支持 Markdown