Kubernetes集群支持为Pod或者Service申请IPV4或者IPV6的地址空间。
| kube-apiserver --service-cluster-ip-range=<IPv4 CIDR>,<IPv6 CIDR> |
| kube-controller-manager --cluster-cidr=<IPv4 CIDR>,<IPv6 CIDR> --service-cluster-ip-range=<IPv4 CIDR>,<IPv6 CIDR> --node-cidr-mask-size-ipv4|--node-cidr-mask-size-ipv6 |
| kube-proxy --cluster-cidr=<IPv4 CIDR>,<IPv6 CIDR> |
| kubelet .status.addresses |
如上所示,使用Kubernetes组件设置IPV4或者IPV6的地址空间
| SingleStack 申请单协议栈 |
| PreferDualStack
|
| RequireDualStack 申请双协议栈,从.spec.ClusterIPs中选择合适的IP地址 |

如上所示,设置Service同时使用IPV4以及IPV6

如上所示,设置Service仅支持IPV4

如上所示,设置headless类型Service的IP配置

如上所示,当设置service.kubernetes.io/topology-mode为auto,使用拓扑感知的方式路由,即根据实际流量的大小,将实际流量平衡地调度到所有区域zone中

如上所示,使用静态的方式直接指定分配的IP地址,Kubernetes集群支持动态地从地址空间中选择分配一个IP地址,或者直接指定一个静态的IP地址

如上所示,Kubernetes集群为避免申请IP地址的时候发生地址冲突,使用公式min(max(16, cidrSize / 16), 256)约束静态IP地址与动态IP地址的个数比例的申请,该公式表示静态IP地址的最小偏移量,10.96.0.0/24 的地址个数是256-2=254,min(max(16, 256/16), 256) = min(16, 256) = 16,静态地址范围是10.96.0.1到10.96.0.16,而动态的地址最大值是 10.96.0.254

如上所示,10.96.0.0/20的地址个数是4096-2= 4094,min(max(16, 4096/16), 256) = min(256, 256) = 256,静态地址范围是10.96.0.1到10.96.1.0,而动态的地址最大值是 10.96.15.254

如上所示,10.96.0.0/16的地址个数是65536-2=65534,min(max(16, 65536/16), 256) = min(4096, 256) = 256,静态地址范围是10.96.0.1到10.96.1.0,而动态的地址最大值是 10.96.255.254



















