Accessing Public Networks from a Container

Containers can access public networks in either of the following ways:

  • Bind a public IP address to the node where the container is located if the network model is VPC network or tunnel network.

  • Bind a public IP address to the pod. (When the Cloud Native Network 2.0 model is used, manually bind an EIP to the ENI or sub-ENI of the pod on the VPC console. This method is not recommended because the IP address of a pod changes after the pod is rescheduled. As a result, the new pod cannot access the public network.)

  • Configure SNAT rules through NAT Gateway.

You can use NAT Gateway to enable container pods in a VPC to access public networks. NAT Gateway provides source network address translation (SNAT), which translates private IP addresses to a public IP address by binding an elastic IP address (EIP) to the gateway, providing secure and efficient access to the Internet. Figure 1 shows the SNAT architecture. The SNAT function allows the container pods in a VPC to access the Internet without being bound to an EIP. SNAT supports a large number of concurrent connections, which makes it suitable for applications involving a large number of requests and connections.

**Figure 1** SNAT

Figure 1 SNAT

To enable a container pod to access the Internet, perform the following steps:

  1. Assign an EIP.

    1. Log in to the management console.

    2. Click image1 in the upper left corner of the management console and select a region and a project.

    3. Click image2 at the upper left corner and choose Networking > Elastic IP in the expanded list.

    4. On the EIPs page, click Create EIP.

    5. Set parameters as required.

      Note

      Set Region to the region where container pods are located.

  2. Create a NAT gateway.

    1. Log in to the management console.

    2. Click image3 in the upper left corner of the management console and select a region and a project.

    3. Click image4 at the upper left corner and choose Networking > NAT Gateway in the expanded list.

    4. On the displayed page, click Create Public NAT Gateway in the upper right corner.

    5. Set parameters as required.

      Note

      Select the same VPC.

  3. Configure an SNAT rule and bind the EIP to the subnet.

    1. Log in to the management console.

    2. Click image5 in the upper left corner of the management console and select a region and a project.

    3. Click image6 at the upper left corner and choose Networking > NAT Gateway in the expanded list.

    4. On the page displayed, click the name of the NAT gateway for which you want to add the SNAT rule.

    5. On the SNAT Rules tab page, click Add SNAT Rule.

    6. Set parameters as required.

    Note

    SNAT rules take effect by CIDR block. As different container network models use different communication modes, the subnet needs to be selected according to the following rules:

    • Tunnel network and VPC network: Select the subnet where the node is located, that is, the subnet selected during node creation.

    If there are multiple CIDR blocks, you can create multiple SNAT rules or customize a CIDR block as long as the CIDR block contains the node subnet.

    After the SNAT rule is configured, workloads can access public networks from the container. Public networks can be pinged from the container.