在为Kubernetes设置Flannel和服务IP时,选择network / 16 vs / 12会有什么影响?

时间:2017-05-07 12:38:05

标签: kubernetes cidr flannel

我正在从头开始设置Kubernetes集群。我希望安装法兰绒作为安装过程的一部分。当我查看在线指南/示例时,我可以看到有必要配置Flannel子网。

我可以看到一些指南(deploying-kubernetes-using-ansible.html)像这样建立法兰绒网络:

{
  "Network": "172.16.0.0/12",
  "SubnetLen": 24,
  "Backend": {
    "Type": "vxlan"
  }
}

而另一个指南(Kubernetes – simple install on CentOS 7)设置网络如下:

{"Network":"172.17.0.0/16"}

我还在学习CIDR表示法,所以我可以看到第一种方法可用的IP地址多于第二种方法。第二个URL指出:

  

您的所有kubernetes节点将同时位于3个不同的子网中   时间:

     

外部接口子网:10.0.1.0/24
  法兰绒子网:172.17.0.0/16#不要使用现有子网
  服务群集子网:10.10.10.0/24#不使用现有子网

我可以从维基百科(Private IPv4 address spaces)看到172范围是一个高达/ 12的私有地址空间。

我看到报价的含义是:

  • 外部接口:/ 24(由网络管理员设置)==外部网络上最多255台主机。这是群集中的最大节点数。
  • 法兰绒子网:172.17.0.0/16(由法兰绒配置设置)==法兰绒网络中最多65535个IP。这是什么意思?
  • 服务群集:10.10.10.0/24(由KUBE_SERVICE_ADDRESSES =“ - service-cluster-ip-range = 10.10.10.0 / 24”设置)==群集中最多255个服务? (docs here

将Flannel配置更改为/ 12(或12..31中的任何其他数字)有什么实际意义?

service-cluster-ip-range的相同问题以及如何从pod的IP中消除服务IP的冲突?

1 个答案:

答案 0 :(得分:1)

实际上,法兰绒配置Network(/ 12)必须小于SubnetLen(/ 24)。外部接口子网是主机的子网。 service-cluster-ip-rangeclusterIP的范围,它是虚拟的(iptables在kubernetes中的默认实现)。当ip具有相同的ip范围时,将出现iptables和路由冲突。所以我们应该为他们指定不同的IP范围。