VPC-CNI模式集群访问公网实践
所有文档

          容器引擎 CCE

          VPC-CNI模式集群访问公网实践

          VPC-CNI 模式集群访问公网实践

          概述

          在一些场景中,用户需要让 VPC-CNI 模式集群中的节点或 Pod 具备访问公网的能力,如通过 yum install 等命令访问外部源地址下载安装软件、容器需要访问公网中的某些服务等等。

          对于节点访问公网的操作,请参考 CCE-访问公网实践

          由于 VPC-CNI 模式集群中的 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-CNI 模式集群中的 Pod 流量正是通过挂载在节点上的弹性网卡流入流出。

          方案一:NAT 网关

          (注:百度云私有网络VPC不再支持创建 NAT 专属型子网,若使用方案一进行访问公网实践,请选择通用型子网作为节点子网。之前创建的 NAT 专属型子网将不受影响,可正常使用。)

          可以通过 NAT 网关为私有网络提供访公网访问服务,参考 NAT网关最佳实践

          由于容器 IP 都来源自弹性网卡的辅助 IP,可以在 VPC 路由表中添加路由规则,源地址是 “ENI 子网”,目标地址 “0.0.0.0/0”,下一跳选择 “NAT 网关”。

          可以将 IP-MASQ-Agent 中配置项 masqOutBound 设为 false 获得更好的性能,参考 CCE IP Masquerade Agent 用户指南

          方案二:弹性网卡配置 EIP

          通过给每个弹性网卡绑定 EIP,并保持 IP-MASQ-Agent 中配置项 masqOutBound 为 true,可以让 Pod 流量伪装成 EIP 的 EIP 进入公网。

          优缺点分析

          方案 优点 缺点
          NAT 网关 节点完全没有EIP,安全性高;
          操作简单;
          弹性网卡和 Pod 无法绑定EIP,无法被公网访问;
          弹性网卡配置 EIP 弹性网卡或者 Pod 能够被公网访问;
          每个弹性网卡均需要绑定 EIP,操作复杂;
          需要暴露弹性网卡或者 Pod 的 EIP,存在安全风险;
          上一篇
          CCE集群备份
          下一篇
          CCE容器网络模式选择