在创建ACS集群时,您需要指定专有网络VPC、虚拟交换机和Service CIDR(地址段)。建议您提前规划Kubernetes Pod地址和Service地址。本文将介绍阿里云专有网络VPC环境下ACS集群里各种地址的作用,以及如何规划地址段。
专有网络VPC网段和Kubernetes网段关系
专有网络VPC(下文简称为VPC或专有网络)的网段规划包含VPC自身网段和虚拟交换机网段,Kubernetes网段规划包含Pod地址段和Service地址段。
配置ACS模式网络时,需要设置的参数及参数网段配置的注意事项如下:
专有网络
您在创建VPC时需要选择网段,只能从10.0.0.0/8、172.16.0.0/12、192.168.0.0/16三者中选择一个。
虚拟交换机
Pod地址从该交换机分配,用于Pod网络通信。Pod是Kubernetes内的概念,每个Pod具有一个IP地址。在VPC创建交换机时指定的网段必须是当前VPC网段的子集。配置网段时,请注意:
Pod虚拟交换机是VPC交换机。
ACS网络模式下,Pod分配的Pod IP就是从这个交换机网段内获取的。
该地址段不能和Service CIDR网段重叠。
Service CIDR
Service地址段。Service是Kubernetes内的概念,对应的是Service类型为ClusterIP时Service使用的地址,每个Service有自己的地址。配置网段时,请注意:
Service地址只在Kubernetes集群内使用,不能在集群外使用。
Service地址段不能和虚拟交换机地址段重叠。
网络规划
在阿里云环境下使用ACS支持的Kubernetes集群,首先需要根据业务场景、集群规模进行网络规划。您可以按照下表规格进行规划(未包含场景,请根据实际需要自行调整)。
VPC网络规划
集群Pod规模 | 目的 | VPC规划 | 可用区 |
小于1000个Pod | 一般性业务 | 单VPC | 1个 |
任意 | 需要多可用区 | 单VPC | 2个及以上 |
任意 | 对可靠性有较高要求、需要多地域 | 多VPC | 2个及以上 |
容器网络规划
本文针对ACS网络场景,规划容器网络的多可用区配置示例如下:
专有网络网段 | 虚拟交换机网段 | Service CIDR网段 | 最大可分配Pod地址数 |
192.168.0.0/16 | 可用区I 192.168.0.0/19 | 172.21.0.0/20 | 8192 |
可用区J 192.168.32.0/19 | 8192 |
如何选择地址段?
单VPC+单Kubernetes集群
这是最简单的情形。VPC地址在创建VPC的时候就已经确定,创建Kubernetes集群时,Service地址网段和当前VPC不一样的地址段即可。
单VPC+多Kubernetes集群
一个VPC下创建多个Kubernetes集群。
VPC地址在创建VPC时已经确定。创建Kubernetes集群时,每个集群内的VPC地址段、Service地址段彼此之间不能重叠。
所有Kubernetes集群之间的Service地址段可以重叠,Pod的虚拟交换机可以复用。
说明这种情况下,Kubernetes集群之间可以互通,一个集群的Pod可以直接访问另外一个集群的Pod和ECS,但不能访问另外一个集群的Service。
VPC互联
两个VPC网络互联的情况下,可以通过路由表配置哪些报文要发送到对端VPC里。如下表所示,VPC 1使用地址段192.168.0.0/16,VPC 2使用地址段172.16.0.0/12,您可以通过路由表,指定在VPC 1里把目的地址为172.16.0.0/12的报文都发送到VPC 2。
表 3. VPC互联场景
类别
地址段
目的端
转发到
VPC 1
192.168.0.0/16
172.16.0.0/12
VPC 2
VPC 2
172.16.0.0/12
192.168.0.0/16
VPC 1
在这种情况下,VPC 1和VPC 2里创建的Kubernetes集群有以下限制:
不能和VPC 1的地址段重叠
不能和VPC 2的地址段重叠
不能和其他集群的地址段重叠
不能和Service的地址段重叠
此例子中,Kubernetes集群Serivce地址段可以选择10.0.0.0/8下的某个子段。
说明您需特别关注转发到VPC 2的地址段,可以把这部分地址理解成已经占用的地址,Kubernetes集群不能和已经占用的地址重叠。
VPC网络到IDC
和VPC互联场景类似,同样存在VPC里部分地址段路由到IDC,Kubernetes集群的Service地址就不能和这部分地址重叠。IDC里如果需要访问Kubernetes里的Pod地址,同样需要在IDC端配置到专线VBR的路由表。