运维部署
设计和配置 GKE 集群网络时:采用私有…
在设计 GKE 网络布局、配置私有集群、启用 Dataplane V2、规划 GKE IP 范围或管理 VPC-native 集群模式时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
设计和配置 GKE 集群网络时:采用私有特定
解决思路
- 可借助 MCP 工具 `get_cluster`、`update_cluster`、`apply_k8s_manifest`、`get_k8s_resource` 操作集群。
- 设置 `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 且内置 Network Policy 的数据面。
- 设置 `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 endpoint 访问私有集群:运行 `gcloud container clusters get-credentials {cluster_name} --region {region} --dns-endpoint --quiet`。
- 从 VPC 内通过 private endpoint 访问集群:运行 `gcloud container clusters get-credentials {cluster_name} --region {region} --internal-ip --quiet`。
- 使用 Authorized networks 时,把特定 CIDR 添加到 `masterAuthorizedNetworksConfig`,进行基于 IP 的访问控制。
- 如果客户已有 VPC/子网等网络基础设施,使用自带 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-native 模式:使用 GCP Alias IP ranges 在 VPC 内原生路由流量,绕过自定义路由需求,避免自定义路由限制瓶颈。
- 选择 VPC-native 模式:直接集成 GCP 网络资源,避免复杂桥接或路由隧道。
- 选择 VPC-native 模式:支持不连续 IP 范围并优化分配,降低子网 IP 范围耗尽风险。
- 规划 Pod CIDR:使用 `/17`(自动),约 32K 个 Pod IP;大小基于 `maxPodsPerNode`。
- 规划 Service CIDR:使用 `/20`(自动),约 4K 个 Service IP。
- 规划 Node subnet:自动创建;建议 `/20` 以便增长。
- 规划 Max pods/node:使用 48;每个节点获得 `/25` Pod 范围;设为 110 时每节点使用 `/24`。
- 遵循 Pod CIDR 大小经验规则:`maxPodsPerNode=48` 时每个节点从 Pod CIDR 使用 `/25`(128 IPs);`maxPodsPerNode=110` 时每个节点使用 `/24`(256 IPs);`maxPodsPerNode` 越大,给定 CIDR 能容纳的节点越少。
- 默认出站:节点使用 Cloud NAT 出站访问互联网(私有节点没有公网 IP),让私有节点访问互联网而不暴露公网 IP。
- 静态出站 IP:配置 Cloud NAT 手动 IP 分配,为外部 allowlist 或合作方防火墙保持一致源 IP。
- 受限出站:通过自定义路由把出站流量路由到防火墙设备,按组织安全策略检查和过滤出站流量。
- 使用 Dataplane V2(黄金路径)内置 Network Policy 执行能力,无需额外 addon。
- 按命名空间应用 default-deny,然后允许特定流量。
- 参考 `gke-workload-security` 技能获取 default-deny 策略,参考 `gke-multitenancy` 技能获取按团队 allow 策略。
适用边界 · 注意事项
- 不要用于应用 ingress、负载均衡或 service networking;这些应使用 `gke-service-networking` 技能。
- 不适用于非 GKE 或非 Google Cloud 环境,也不适用于没有 GCP/GKE 权限和账号的场景。