VPC-ENI模式集群访问公网实践
概述
在一些场景中,用户需要让 VPC-ENI 模式集群中的节点或 Pod 具备访问公网的能力,如通过 yum install 等命令访问外部源地址下载安装软件、容器需要访问公网中的某些服务等等。
对于节点访问公网的操作,请参考 CCE-访问公网实践
由于 VPC-ENI 模式集群中的 Pod 流量全部流经挂载在节点上的弹性网卡,因此对于集群内 Pod 访问公网的需求,我们提供了以下两种方案配置弹性网卡,用户可以根据具体需求自行选择。
相关概念
EIP:EIP是百度智能云提供的弹性公网IP服务,EIP可以挂载到CCE节点、BLB、NAT网关等服务,提供可以访问公网的地址。
NAT网关:百度智能云 NAT 网关支持用户 VPC 子网中的 BCC、DCC 等实例连接公网,通过 NAT 网关实现内网 IP 转换为公网 IP 地址。
节点子网:用户在创建CCE工作节点时,可以选择节点所在的VPC子网。子网通常会有两种类型:通用型子网、NAT 专属型子网。通用型子网中的节点可以挂载 EIP 直接访问公网,NAT 专属型子网中的节点则只能通过 NAT 网关实现公网访问。
弹性网卡: 弹性网卡为用户单独创建并挂载在虚机实例上,用户可以在虚机创建、虚机停机或运行时挂载弹性网卡,用户挂载并配置好网卡后通过配置系统路由即可实现不同流量走不同网卡。 CCE VPC-ENI 模式集群中的 Pod 流量正是通过挂载在节点上的弹性网卡流入流出。
方案一:NAT 网关
(注:百度云私有网络VPC不再支持创建 NAT 专属型子网,若使用方案一进行访问公网实践,请选择通用型子网作为节点子网。之前创建的 NAT 专属型子网将不受影响,可正常使用。)
可以通过 NAT 网关为私有网络提供访公网访问服务。
由于容器 IP 都来源自弹性网卡的辅助 IP,可以在 VPC 路由表中添加路由规则,源地址是 “ENI 子网”,目标地址 “0.0.0.0/0”,下一跳选择 “NAT 网关”。
优缺点分析
方案 | 优点 | 缺点 |
---|---|---|
NAT 网关 | 节点完全没有EIP,安全性高; 操作简单; |
弹性网卡和 Pod 无法绑定EIP,无法被公网访问;如需要公网访问 Pod 选择 ENI 直通功能 |