在腾讯云容器服务(TKE)的实际使用中,有时会遇到一个典型场景:集群内部署的应用运行正常,但节点(Node)本身无法访问外部公网。这通常是因为节点仅分配了内网IP地址。为了打通节点到公网的访问链路,主要有两种解决方案:通过配置公网NAT网关,或者为节点绑定弹性公网IP(EIP)。
方案一:通过公网NAT网关实现外网访问
此方案是更推荐和常见的做法,它为整个子网内的资源提供了统一、安全的外网出口。
1. 创建公网NAT网关
首先,在腾讯云私有网络(VPC)控制台中,找到并进入“公网NAT网关”页面,点击“新建”。在创建界面中,通常保持默认配置即可。

创建过程中,系统会明确展示相关费用构成,主要包括网关实例费、网关CU费和产生的网络流量费用。

2. 创建并配置路由表
NAT网关创建成功后,下一步需要配置路由策略来引导流量。你需要在同一VPC下创建一个新的路由表,或者使用已有路由表进行编辑。

在路由表的“路由策略”配置项中,点击“新增一行”。关键配置如下:
- 目的端:填写需要访问的外部公网IP地址段,支持CIDR格式。例如,如果你希望节点访问某个特定服务,可以填入该服务的公网IP。若填写
0.0.0.0/0,则表示将所有非本VPC的流量(即所有公网流量)都转发至NAT网关。这样做的好处是配置简单,一劳永逸;需要注意的是,这会使所有外网流量都经过NAT网关计费。
- 下一跳类型:选择“公网NAT网关”。
- 下一跳:选择你刚刚创建的NAT网关实例。

如何获取特定域名的公网IP?
你可以使用 nslookup 命令查询。例如,查询 api.weixin.qq.com 的IP:
[root@VM-0-16-tlinux ~]# nslookup api.weixin.qq.com
Server: 183.60.83.19
Address: 183.60.83.19#53
Non-authoritative answer:
Name: api.weixin.qq.com
Address: 81.69.216.43
Name: api.weixin.qq.com
Address: 109.244.145.152
Name: api.weixin.qq.com
Address: 175.27.5.221
其中,183.60.83.19 是DNS服务器地址,下面的三个IP(如 81.69.216.43)才是 api.weixin.qq.com 对应的公网IP地址,可以将其配置到路由表的目的端。
3. 关联子网
路由策略配置好后,最后一步是将TKE节点所在的子网与此路由表进行关联。

完成关联后,该子网内所有资源(包括你的TKE节点)访问Internet的流量,都会根据路由策略指向NAT网关,从而实现了外网访问。
方案二:为节点绑定弹性公网IP(EIP)
这种方法是为单个云服务器(即TKE节点)直接分配一个公网IP。它比NAT网关方案成本略低,但管理上不够灵活,通常适用于特定节点需要固定公网IP的场景。
1. 申请弹性公网IP
在“公网IP”控制台页面,点击“申请”一个新的弹性公网IP。

在申请页面,根据需求选择IP类型、计费模式和带宽上限。“按小时带宽”计费模式相对于“按流量”计费,在特定场景下可能更具成本优势。

2. 绑定EIP到TKE节点
申请成功后,你会在EIP列表中看到状态为“未绑定”的IP地址。

接下来,需要手动将这个EIP绑定到TKE的节点上。在节点对应的云服务器管理页面,找到网络配置或弹性公网IP绑定选项进行操作。

绑定完成后,你可以在TKE的节点列表或云服务器列表中查看该节点,确认其已获得公网IP地址。

至此,该节点便可以通过绑定的弹性公网IP与公网进行互访。
总结与选择建议
- NAT网关方案:更适合集群内多数或全部节点需要访问公网的场景。它提供集中化的出入口,便于管理和监控,安全性更高,是构建 云原生环境 网络架构的推荐方式。
- 绑定EIP方案:适用于仅为个别特定节点配置公网访问,且需要固定公网IP地址的情况。管理较为分散。
在实际的TKE运维中,根据业务需求和成本考量选择合适的外网访问方案,是保障应用正常通信的关键一步。希望这篇实战指南能帮助你解决相关问题。如果你在实施过程中遇到其他挑战,欢迎在云栈社区与其他开发者交流探讨。