更新时间:2024-10-15 GMT+08:00
分享

从容器访问公网

容器访问公网有如下方法可以实现。

  • 给容器所在节点绑定弹性公网IP(容器网络模型为VPC网络或容器隧道网络)。
  • 给Pod IP绑定弹性公网IP(仅支持云原生2.0网络模型集群,在VPC控制台中手动为Pod的弹性网卡或辅助弹性网卡绑定弹性公网IP。不推荐使用,因为Pod被重调度后IP会变化导致新的Pod无法访问公网)。
  • 通过NAT网关配置SNAT规则,通过NAT网关访问公网。

下面将详细讲解通过NAT网关访问公网的方法,NAT网关能够为VPC内的容器实例提供网络地址转换(Network Address Translation)服务,SNAT功能通过绑定弹性公网IP,实现私有IP向公有IP的转换,可实现VPC内的容器实例共享弹性公网IP访问Internet。其原理如图1所示。通过NAT网关的SNAT功能,即使VPC内的容器实例不配置弹性公网IP也可以直接访问Internet,提供超大并发数的连接服务,适用于请求量大、连接数多的服务。

图1 SNAT

您可以通过如下步骤实现容器实例访问Internet。

  1. 创建弹性公网IP,具体请参见申请弹性公网IP

    1. 登录管理控制台。
    2. 在管理控制台左上角单击,选择区域和项目。
    3. 在控制台首页,单击左上角的,在展开的列表中单击“网络 > 弹性公网IP”
    4. “弹性公网IP”界面,单击“购买弹性公网IP”。
    5. 根据界面提示配置参数。

      此处“区域”需选择容器实例所在区域。

      图2 购买弹性公网IP

  2. 创建NAT网关,具体请参见购买NAT网关

    1. 在控制台首页,单击左上角的,在展开的列表中单击“网络 > NAT网关”
    2. 在NAT网关页面,单击右上角的“购买公网NAT网关”。
    3. 根据界面提示配置参数。

      此处需选择集群相同的VPC。

      图3 购买公网NAT网关

  3. 配置SNAT规则,为子网绑定弹性公网IP,具体请参见添加SNAT规则

    1. 在NAT网关页面,单击需要添加SNAT规则的NAT网关名称。
    2. 在SNAT规则页签中,单击“添加SNAT规则”。
    3. 根据界面提示配置参数。

    SNAT规则是按网段生效,因为不同容器网络模型通信方式不同,此处子网需按如下规则选择。

    • 容器隧道网络、VPC网络:需要选择节点所在子网,即创建节点时选择的子网。
    • 云原生2.0网络:需要选择容器所在子网,即创建集群时选择的容器子网。

    对于存在多个网段的情况,可以创建多个SNAT规则或选择自定义网段,只要网段能包含容器子网(云原生2.0网络)或节点子网(容器隧道网络、VPC网络)即可。

    图4 配置SNAT规则

    SNAT规则配置完成后,您就可以从容器中访问公网了,从容器中能够ping通公网。

相关文档