如何让GKE内部Pod通过VPN访问另一个VPC的内部IP地址
GKE跨项目VPC互通解决方案
适用场景
私有NAT GKE集群跨项目通过VPN访问对端私有网络
操作步骤
- 第一步:校验两端VPC路由规则
登录旧项目A的VPC路由表,确认存在指向VPN隧道、目标地址为新项目B GKE集群的Pod CIDR、Service CIDR的路由条目,无则手动添加;同时检查项目A的VPC防火墙规则,放行了源地址为GKE节点内网IP、Pod CIDR的入站流量。 - 第二步:修正ip-masq-agent配置
之前配置未生效的核心原因大概率是非伪装网段配置错误:编辑ip-masq-agent的ConfigMap,nonMasqueradeCIDRs列表仅保留项目B的内网CIDR、GKE集群本身的Pod/Service CIDR,不要加入项目A的私有CIDR。配置更新后删除所有运行中的ip-masq-agent Pod,触发配置重新加载。此时Pod访问项目A地址时,会自动伪装为GKE节点的内网IP,该IP本身已经在VPN的互通放行范围内,可直接通信。 - 第三步:实现部分Pod访问控制
如果仅需要部分Pod访问项目A资源,可通过给指定Pod打专属标签,配置ip-masq-agent仅对带对应标签的Pod生效,或搭配GKE NetworkPolicy限制Pod的出站目标地址范围即可。 - 第四步:连通性验证
进入符合访问条件的Pod中,执行nc -vz 项目A目标私有IP 端口测试连通性即可。
基础设施架构图

内容的提问来源于stack exchange,提问作者Christopher Canon
相关产品推荐
相关产品推荐

