Kubernetes技术与架构-网络 3

Kubernetes集群支持为Pod或者Service申请IPV4或者IPV6的地址空间。

kube-apiserver

--service-cluster-ip-range=,

kube-controller-manager

--cluster-cidr=,

--service-cluster-ip-range=,

--node-cidr-mask-size-ipv4|--node-cidr-mask-size-ipv6

kube-proxy

--cluster-cidr=,

kubelet

.status.addresses

如上所示,使用Kubernetes组件设置IPV4或者IPV6的地址空间

SingleStack

申请单协议栈

PreferDualStack
 
申请双协议栈

 

RequireDualStack

申请双协议栈,从.spec.ClusterIPs中选择合适的IP地址

Kubernetes技术与架构-网络 3_第1张图片

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

Kubernetes技术与架构-网络 3_第2张图片

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

Kubernetes技术与架构-网络 3_第3张图片

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

Kubernetes技术与架构-网络 3_第4张图片

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

Kubernetes技术与架构-网络 3_第5张图片

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

Kubernetes技术与架构-网络 3_第6张图片

如上所示,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

Kubernetes技术与架构-网络 3_第7张图片

如上所示,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

Kubernetes技术与架构-网络 3_第8张图片

如上所示,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

你可能感兴趣的:(Kubernetes技术与架构,1024程序员节,Kubernetes,网络)