集群网络地址段规划实践
在CCE中创建集群时,您需要根据具体的业务需求规划VPC的数量、子网的数量、容器网段划分和服务网段连通方式。
本文将介绍VPC环境下CCE集群里各种地址的作用,以及地址段该如何规划。
约束与限制
通过搭建VPN方式访问CCE集群,需要注意VPN网络和集群所在的VPC网段、容器使用网段不能冲突。
集群各网段基本概念
- VPC网段
虚拟私有云(Virtual Private Cloud,简称VPC)可以为云服务器、云容器、云数据库等资源构建隔离的、用户自主配置和管理的虚拟网络环境。您可以自由配置VPC内的IP地址段、子网、安全组等子服务,也可以申请弹性带宽和弹性公网IP搭建业务系统。
- 子网网段
子网是用来管理弹性云服务器网络平面的一个网络,可以提供IP地址管理、DNS服务,子网内的弹性云服务器IP地址都属于该子网。图1 VPC网段结构
默认情况下,同一个VPC的所有子网内的弹性云服务器均可以进行通信,不同VPC的弹性云服务器不能进行通信。
不同VPC的弹性云服务器可通过VPC创建对等连接通信。
- 容器网段(Pod网段)
Pod是Kubernetes内的概念,每个Pod具有一个IP地址。
在CCE上创建集群时,可以指定Pod的地址段(即容器网段),容器网段不能和子网网段重叠。例如子网网段用的是 192.168.0.0/16,集群的容器网段就不能使用192.168.0.0/18,192.168.1.0/18等,因为这些地址都涵盖在 192.168.0.0/16 里了。
- 容器子网(仅CCE Turbo集群)
CCE Turbo集群中,容器直接从VPC网段中分配IP地址,容器子网可以和子网网段重叠,但需要注意该容器子网的大小决定了集群下容器的数量上限。在集群创建完成后,仅支持新增容器子网,不支持删除。
- 服务网段
Service也是Kubernetes内的概念,每个Service都有自己的地址,在CCE上创建集群时,可以指定Service的地址段(即服务网段)。同样,服务网段也不能和子网网段重合,而且服务网段也不能和容器网段重叠。服务网段只在集群内使用,不能在集群外使用。
单VPC+单集群场景
- VPC网段:集群所在的VPC网段,该网段的大小影响集群中可创建的节点数量上限。
- 子网网段:集群中节点所在的子网网段,子网网段包含在VPC网段中。同个集群中的不同节点可分配到不同的子网网段。
- 容器网段:容器网段不能和子网网段重叠。
- 服务网段:服务网段不能和子网网段重叠,而且也不能和容器网段重叠。
- VPC网段:集群所在的VPC网段,该网段的大小影响集群中可创建的节点数量上限。
- 子网网段:集群中节点所在的子网网段,子网网段包含在VPC网段中。同个集群中的不同节点可分配到不同的子网网段。
- 容器子网网段:容器子网包含在VPC网段中,且可以和子网网段重叠,甚至可以选择和子网网段相同。但需要注意的是,由于容器直接分配VPC中的IP,因此该容器子网的大小决定了集群下容器的数量上限。在集群创建完成后,仅支持新增容器子网,不支持删除。建议将容器子网的IP地址段设大一些,以免出现容器IP分配不足的情况。
- 服务网段:服务网段不能和子网网段重合,而且也不能和容器网段重叠。
单VPC+多集群场景
VPC网络模式
- VPC网段:集群所在的VPC网段,该网段的大小影响集群中可创建的节点数量上限。
- 子网网段:每个集群中的子网网段不能和容器网段重叠。
- 容器网段:单VPC中存在多个VPC网络模型集群的场景下,由于各个集群使用同一路由表,因此所有集群的容器网段不能相互重叠。在此情况下CCE集群部分互通,一个集群的Pod可以直接访问另外一个集群的Pod,但不能访问另外一个集群的Service。
- 服务网段:由于服务网段只能在集群中使用,因此集群之间服务网段可以重叠,但是不能和所属集群的子网网段和容器网段重叠。
容器隧道网络
- VPC网段:集群所在的VPC网段,该网段的大小影响集群中可创建的节点数量上限。
- 子网网段:每个集群中的子网网段不能和容器网段重叠。
- 容器网段:所有集群的容器网段可以重叠。在此情况下不同集群的Pod直接不能通过IP直接访问,跨集群容器之间的访问建议通过ELB实现。
- 服务网段:由于服务网段只能在集群中使用,因此集群之间服务网段可以重叠,但是不能和所属集群的子网网段和容器网段重叠。
云原生网络2.0模式(即CCE Turbo集群)
- VPC网段:集群所在的VPC网段,在CCE Turbo集群中,该网段的大小影响集群中可创建的节点数量与容器数量之和。
- 子网网段:CCE Turbo集群中的子网网段没有特殊限制。
- 容器子网:容器子网的网段包含在VPC网段中,且不同集群的容器子网之间可以重叠,也可以和子网网段重叠。但仍建议您将不同集群的容器网段错开,且尽量保证容器子网网段的IP数充足。在此情况下,不同集群的Pod之间可以直接通过IP访问。
- 服务网段:由于服务网段只能在集群中使用,因此集群之间服务网段可以重叠,但是不能和所属集群的子网网段和容器子网网段重叠。
多网络模式集群并存场景
同一VPC中包含多个网络模式的集群时,应在创建新集群时遵循以下规律:
- VPC网段:该场景下各个集群所在的VPC网段相同,请保证VPC内可用的IP地址数充足。
- 子网网段:子网网段尽量避免和容器网段重叠。即使在某些场景下(例如和CCE Turbo集群共存时),子网网段可以和容器(子网)网段重叠,但从地址段规划角度出发,这是不推荐的。
- 容器网段:仅VPC网络模式的集群间的容器网段需要避免相互重叠。
- 服务网段:所有集群之间服务网段可以重叠,但是不能和所属集群的子网网段和容器网段重叠。
集群跨VPC互联场景
两个VPC网络互联的情况下,可以通过路由表配置哪些报文要发送到对端VPC里。
在“VPC网络”模式下,创建对等连接后,您需要在两端VPC内添加对等连接路由信息,才能使两个VPC互通。
跨VPC的集群容器之间互联需要建立VPC对等连接时,需要注意如下几点:
- 两端集群所属的VPC地址段需要避免重叠,且在每个集群中,子网网段不能与容器网段重叠。
- 两端集群的容器网段不能相互重叠,但服务网段可以重叠。
- 两端的VPC路由表中不仅需要添加对端的VPC网段地址,还需要添加对端容器网段的地址。需要注意该操作在两侧的VPC路由表中均要进行。
同样,在“容器隧道网络”模式下,创建对等连接后,您需要在两端VPC内添加对等连接路由信息,才能使两个VPC互通。
需要注意如下几点:
- 两端集群所属的VPC地址段需要避免重叠。
- 所有集群的容器网段可以重叠,服务网段也可以重叠。
- 对等连接的路由表中需要添加对端集群节点子网网段的地址。
在“云原生2.0网络”模式下,创建对等连接后,您仅需要在两端VPC内添加对等连接路由信息,使两个VPC互通,即可完成集群间的互通。仅需注意两端集群所属的VPC地址段避免重叠即可。
VPC网络到IDC的场景
和VPC互联场景类似,同样存在VPC里部分地址段路由到IDC,CCE集群的Pod地址就不能和这部分地址重叠。IDC里如果需要访问集群里的Pod地址,同样需要在IDC端配置到专线VBR的路由表。