
# 从Pod访问公网
#### 从Pod访问公网的实现方式
从Pod中访问公网地址的实现方式会因集群网络模式的不同而不同，具体请参见[表1]。
 表1从Pod访问公网的实现方式 
| 实现方式          | 容器隧道网络 | VPC网络 | 云原生2.0网络                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| 给容器所在节点绑定公网IP | 支持     | 支持    | 不支持                                                                                                                                                                                                        |
| 给Pod绑定弹性公网IP  | 不支持    | 不支持   | 支持 说明： 给Pod绑定弹性公网IP，可以通过为Pod配置固定弹性公网IP实现，请参见[为Pod配置固定EIP](https://support.huaweicloud.com/usermanual-cce/cce_10_0651.html)。 |
| 通过NAT网关访问公网   | 支持     | 支持    | 支持                                                                                                                                                                                                         |
   
下面内容以CCE Turbo集群为例，讲解如何通过NAT网关访问公网。NAT网关能够为VPC内的容器实例提供源网络地址转换服务，即SNAT（Source Network Address Translation）。SNAT功能通过绑定弹性公网IP，实现私有IP向公有IP的转换，从而使VPC内的容器实例能够共享弹性公网IP访问Internet，其原理如[图1]所示。利用NAT网关的SNAT功能，即使未配置弹性公网IP，VPC内的容器实例也能够直接访问Internet，但不能直接从Internet接收流量。利用NAT网关实现公网访问，可以高效地支持高并发连接需求，适合请求量大、连接数多的应用场景。
图1SNAT原理   
![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002021540141.png)
#### 前提条件
- 已创建一个CCE集群，具体操作步骤请参见[创建集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0028.html)。
- 在集群内已创建一个Pod，具体操作步骤请参见[创建无状态负载（Deployment）](https://support.huaweicloud.com/usermanual-cce/cce_10_0047.html)。
 
#### 从Pod访问公网的实现步骤
您可以通过如下步骤实现容器实例访问Internet。
1. 确认Pod网段。 
   1. 登录管理控制台。
   
   2. 单击左上角的![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002027412421.png)，在展开的列表中单击"容器 \> 云容器引擎 CCE"。
   
   3. 单击相应的集群名称进入"概览"界面，在右侧"网络信息"模块查看容器子网。
      图2容器子网   
      ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002043612080.png "点击放大")
      
      
   
   
   
   
2. 查看当前从Pod访问公网的情况。[登录容器实例](https://support.huaweicloud.com/usermanual-cce/cce_10_00356.html)，在CloudShell界面输入以下代码。
   
   **curl -I *huaweicloud.com***
   若回显内容如下，则说明在Pod中无法访问公网。
   ```
   curl: (7) Failed to connect to huaweicloud.com port 80: Connection timed out
   ```
   
   
3. 创建弹性公网IP，具体请参见[申请弹性公网IP](https://support.huaweicloud.com/usermanual-eip/eip_0008.html)。
   
   1. 在控制台左上角单击![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001985020056.png)，选择区域。
      ![](https://support.huaweicloud.com/bestpractice-cce/public_sys-resources/note_3.0-zh-cn.png)
      此处"区域"需选择容器实例所在区域。
      
   
   2. 单击左上角的![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001984860316.png)，在展开的列表中单击"网络 \> 弹性公网IP"。
   
   3. 在"弹性公网IP"界面，单击"购买弹性公网IP"。
   
   4. 根据界面提示配置参数，请参见[图3]。
      图3购买弹性公网IP   
      ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002079694993.png "点击放大")
      
      
   
   
   
   
4. 创建NAT网关，具体请参见[购买公网NAT网关](https://support.huaweicloud.com/qs-natgateway/nat_qs_0001.html#nat_qs_0001__section82633199366)。
   
   1. 单击左上角的![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000001985020060.png)，在展开的列表中单击"网络 \> NAT网关"。
   
   2. 在NAT网关页面，单击右上角的"购买公网NAT网关"。
   
   3. 根据界面提示配置参数，其中"虚拟私有云"选择集群使用的VPC，并且"子网"选择容器子网，具体请参见[图4]。使用CCE Turbo集群时，"子网"需要选择容器所在子网。使用CCE Standard集群时，"子网"需要选择节点所在子网。
      图4购买公网NAT网关   
      ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002079700201.png "点击放大")
      
      
   
   
   
   
5. 配置SNAT规则，为子网绑定弹性公网IP，具体请参见[添加SNAT规则](https://support.huaweicloud.com/qs-natgateway/nat_qs_0001.html#nat_qs_0001__section43847892)。
   
   1. 在NAT网关页面，单击需要添加SNAT规则的NAT网关名称。
   
   2. 在SNAT规则页签中，单击"添加SNAT规则"。
   
   3. 根据界面提示配置参数，请参见[图5]。
      ![](https://support.huaweicloud.com/bestpractice-cce/public_sys-resources/note_3.0-zh-cn.png)
      SNAT规则是按网段生效，因为不同容器网络模型通信方式不同，此处"网段"需按如下规则选择。
      - 容器隧道网络、VPC网络（CCE Standard集群）：需要选择节点所在网段，即创建节点时选择的网段。
      
      - 云原生网络2.0（CCE Turbo集群）：需要选择容器所在网段，即创建集群时选择的容器网段。
      
      
      对于存在多个网段的情况，可以创建多个SNAT规则或选择自定义网段，只要网段能包含容器子网（云原生网络2.0）或节点子网（容器隧道网络、VPC网络）即可。
      图5配置SNAT规则   
      ![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0000002043628922.png "点击放大")
      
      
   
   
   
   
6. 检验在Pod中能否成功访问公网。[登录容器实例](https://support.huaweicloud.com/usermanual-cce/cce_10_00356.html)，在CloudShell界面输入以下代码。
   
   **curl -I huaweicloud.com**
   若回显内容如下，则说明从Pod访问公网成功。
   ```
   HTTP/1.1 301 Moved Permanently
   Location: https://www.huaweicloud.com/
   Content-Length: 0
   X-NWS-LOG-UUID: 14295805761572179078
   Connection: keep-alive
   Server: Lego Server
   Date: Mon, 19 Aug 2024 10:33:59 GMT
   ...
   ```
   
   
 
