Kubernetes和法兰绒networking设置

我希望有人能够启发我Kubernetesnetworking设置。 我想使用绒布作为Kubernetesnetworking层。

我在Kubernetes:1.5.5顺便说一句。

问题是,有太多的地方可以(应该?)定义一个cidr,我没有看到树木的树木了。

给你一些关于我的设置的信息:

  • 我的主机部署在10.9.0.0/24范围内。
  • 我想使用10.254.0.0/16作为法兰绒范围
  • 目前,worker节点上的docker使用172.17.0.0/16范围

kube-apiserver对cidr有以下select:

--service-cluster-ip-range 

kube-controller-manager为cidr提供了以下选项:

 --cluster-cidr --service-cluster-ip-range 

这两者有什么区别?

kube-proxy有这个:

 --cluster-cidr={{ kubernetes_cluster_cidr }} 

什么ip范围到哪里呢?

其实,你有两个不同的networking层:

  • Cluster-cidr:pods层(你想使用10.254.0.0/16的地方):一旦你的法兰绒networking正常运行,你将不得不configurationDocker来使用它(通过systemd插件或者类似的东西: echo "DOCKER_OPTS="--bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU}"" >> /etc/default/docker )。 这样,群集中的所有“docker0”接口都将在法兰绒networking中连接。
  • Service-cluster-ip-range: 服务层。 服务用于抽象一组逻辑的豆荚。 只要你不知道一个吊舱的位置,或者将要分配给它的IP,你需要某种抽象来到达一个吊舱/一套吊舱,无论它们在哪里。

一个Kubernetes服务是一个抽象,它定义了一个Pod的逻辑集合和一个访问它们的策略 – 有时被称为微服务。 服务所针对的Pod集(通常)由标签select器决定(请参阅下面为什么您可能需要没有select器的服务)。 作为一个例子,考虑一个运行3个副本的image processing后端。 这些副本是可替代的 – 前端不关心他们使用的后端。 虽然构成后端集的实际Pod可能会发生变化,但前端客户端不需要知道该事件,也不需要跟踪后端列表本身。 服务抽象使这种解耦成为可能。

注:服务层不得与您的群集吊舱networking(法兰绒)或任何其他现有networking基础架构重叠。