在云容器引擎创建集群时,需要根据具体业务需求规划VPC大小和数量、子网大小和数量、容器网段和服务网段。本文介绍集群各类地址作用,以及如何规划地址段。
约束与限制
使用VPN方式访问集群时,需注意VPN网络与集群所在的VPC网段、容器网段和服务网段不能冲突。
集群各网段基本概念
VPC网段
虚拟私有云(Virtual Private Cloud,VPC)是隔离的、私密的网络环境,可以自定义网络地址、路由表、安全组等。同时,虚拟私有云提供丰富的网络连接,可以满足云上虚拟私有云互访、公网访问、通过专线或者VPN与线下IDC互通等网络场景。
子网网段
云资源(例如云服务器、数据库服务等)须部署在子网内,同子网内网络默认互通,同VPC下不同子网之间默认互通。子网网段创建后无法修改,请合理规划网络。
下图所示,VPC网段结构:
容器网段(Pod网段)
订购集群时,可指定容器网段(即Pod网段)。针对选择的网络插件,容器网段有不同限制:
1、Calico IPIP隧道网络:
可指定一个私有地址段作为容器网段,该地址段仅在集群内有效。网段大小影响后续可添加节点数及可创建Pod数上线,建议使用大网段,例如172.16.0.0/16。
容器网段不能与节点所在的VPC网段重叠。例如节点使用子网网段192.168.1.0/24,所属VPC网段为192.168.0.0/16,则不能使用与192.168.0.0/16重叠的网段作为容器网段。
2、Cubecni VPC网络:
使用Cubecni网络插件时,容器直接从VPC子网中获取IP地址,此时容器网段为VPC子网网段。目前支持使用一个子网用于容器子网(Pod子网),请注意该容器子网的大小决定了该集群可创建Pod数上限。
服务网段
订购集群时,可指定Service地址段(即服务网段)。Service可为一个或一组Pod提供固定的IP地址,并为这些Pod做负载均衡。每个Service都有自己的地址,Service地址及域名只能在集群内部使用。服务网段不能和节点所属VPC网段及容器网段重叠。
单VPC下单集群场景
Calico IPIP隧道网络
使用Calico网络插件的集群,网络地址段规划如下图所示:
- VPC网段:集群所在的VPC网段,该网段大小影响可创建的子网大小和数量;
- 节点子网网段:集群节点所在的子网网段,该网段大小直接影响后续可新增的节点数;
- 容器网段:容器网段不能和VPC网段、服务网段重叠;
- 服务网段:服务网段不能和VPC网段、容器网段重叠。
Cubecni VPC网络
使用Cubecni网络插件的集群,网络地址段规划如下图所示:
- VPC网段:集群所在的VPC网段,该网段大小影响可创建的子网大小和数量;
- 节点子网网段:集群节点所在的子网网段,该网段大小直接影响后续可新增的节点数;
- 容器子网网段:是VPC的一个子网,Pod直接从该子网分配IP。因为子网可用IP数直接决定了Pod数上限,建议选择一个大子网专用于容器子网网段,以免出现子网可用IP不足的情况,例如订购时选择子网192.168.64.0/18,则有16380个可用IP为Pod提供地址;同个集群的容器子网网段与节点子网网段不能是同一个;
- 服务网段:服务网段不能和VPC网段重叠;
单VPC下多集群场景
Calico IPIP隧道网络
使用Calico网络插件的集群,网络地址段规划如下图所示:
- VPC网段:集群所在的VPC网段,该网段大小影响可创建的子网大小和数量;
- 节点子网网段:集群节点所在的子网网段,该网段大小直接影响后续可新增的节点数;
- 容器网段:容器网段不能和VPC网段、服务网段重叠;多个集群的容器网段可以重叠,但不同集群的Pod无法直接通过容器IP通信,Pod的跨集群访问需借助LoadBlance类型的Service等方式;
- 服务网段:同一集群的服务网段不能和VPC网段、容器网段重叠;不同集群的服务网段可以重叠,因为服务网段地址只在集群内部有效;
Cubecni VPC网络
使用Cubecni网络插件的集群,网络地址段规划如下图所示:
- VPC网段:集群所在的VPC网段,该网段大小影响可创建的子网大小和数量,影响集群可创建的节点数与Pod数之和;
- 节点子网网段:集群节点所在的子网网段,该网段大小直接影响后续可新增的节点数;
- 容器子网网段:是VPC的一个子网,Pod直接从该子网分配IP,因为子网可用IP数直接决定了Pod数上限,建议选择一个大子网专用于容器子网网段;不同集群的容器子网网段不可以是同一个,同个集群的容器子网网段与节点子网网段不能是同一个;不同集群的Pod之间可以直接通过IP访问;
- 服务网段:同一集群的服务网段不能和VPC网段重叠;不同集群的服务网段可以重叠,因为服务网段地址只在集群内部有效;
集群跨VPC互联场景
不同VPC之间网络不通,为打通同一个区域不同VPC的网络互联,可通过对等连接实现。配了对等连接的两个VPC,可进一步配置对等连接的本端路由和对端路由,以确保网络流量能够正确地传输,详见:对等连接产品介绍
Calico IPIP隧道网络
不同VPC使用Calico网络插件的两个集群,在创建对等连接后,需要进一步配置VPC路由表才能使两个VPC互通。跨VPC互联如下图所示:
需要注意如下几点:
- 两端集群节点子网网段需避免重叠;为简化配置避免潜在的地址冲突,建议VPC地址段不重叠;
- 两端集群的容器网段可以重叠,服务网段也可以重叠;
- 一个集群的节点可以访问另一个集群的节点,但需注意两端安全组是否放通;
- 不同集群的Pod之间不能通过容器IP直接访问,跨集群Pod访问需通过LoadBlance类型Service等方式访问;
- 对等连接本端和对端VPC均需配置路由表,以确保网络流量能够正确地传输;
- 在对等连接的本端路由添加对端集群节点子网网段,在对端路由添加本端集群节点子网网段,以实现两端集群节点互访:
Cubecni VPC网络
不同VPC使用Cubecni网络插件的两个集群,在创建对等连接后,需要进一步配置VPC路由表才能使两个VPC互通。跨VPC互联如下图所示:
需要注意如下几点:
- 两端集群节点子网网段需避免重叠,容器子网网段需避免重叠;为简化配置避免潜在的地址冲突,建议VPC地址段不重叠;
- 两端集群的节点及Pod均可直接互访,但需注意两端安全组是否放通;
- 对等连接的路由表需添加对端集群节点子网网段和容器子网网段或者整个VPC网段,该操作在两侧的VPC路由表中均要执行。