Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Kubernetes和flannel网络设置_Docker_Kubernetes_Flannel - Fatal编程技术网

Docker Kubernetes和flannel网络设置

Docker Kubernetes和flannel网络设置,docker,kubernetes,flannel,Docker,Kubernetes,Flannel,我希望有人能在Kubernetes网络设置方面给我一些启发。我想使用法兰绒作为Kubernetes网络层 我在Kubernetes:1.5.5 btw 问题是,有太多的地方你可以(应该?)定义一个苹果酒,我不再看到树木的树木了 要向您提供有关我的设置的一些信息: 我的主机部署在10.9.0.0/24范围内 我想使用10.254.0.0/16作为法兰绒范围 目前,工作节点上的docker使用172.17.0.0/16范围 kube apiserver具有以下cidr选项: --service-

我希望有人能在Kubernetes网络设置方面给我一些启发。我想使用法兰绒作为Kubernetes网络层

我在Kubernetes:1.5.5 btw

问题是,有太多的地方你可以(应该?)定义一个苹果酒,我不再看到树木的树木了

要向您提供有关我的设置的一些信息:

  • 我的主机部署在10.9.0.0/24范围内
  • 我想使用10.254.0.0/16作为法兰绒范围
  • 目前,工作节点上的docker使用172.17.0.0/16范围
kube apiserver具有以下cidr选项:

--service-cluster-ip-range
--cluster-cidr
--service-cluster-ip-range
kube控制器管理器具有以下cidr选项:

--service-cluster-ip-range
--cluster-cidr
--service-cluster-ip-range
这两者有什么区别

kube代理有一个:

--cluster-cidr={{ kubernetes_cluster_cidr }}

ip范围到底在哪里?

实际上,您有两个不同的网络层:

  • 集群cidr:pods层(您希望在其中使用10.254.0.0/16): 一旦您的flannel网络启动并运行,您将必须配置Docker以使用它(通过systemd drop-in或类似的方式:
    echo“DOCKER\u OPTS=“--bip=${FLANNEL\u SUBNET}--mtu=${FLANNEL\u mtu}”>/etc/default/DOCKER
    )。这样,集群中的所有“docker0”接口都将连接到flannel网络中
  • 服务集群ip范围:该层。服务用于抽象一组逻辑吊舱。只要您不知道pod将位于何处,或者不知道将分配给它的IP。。。你需要某种抽象来理解一个或一组豆荚,不管它们在哪里
Kubernetes服务是一种抽象,它定义了一组逻辑POD和访问POD的策略,有时称为微服务。服务所针对的POD集(通常)由标签选择器确定(请参见下文了解为什么您可能需要不带选择器的服务)。 作为一个例子,考虑使用3个副本运行的图像处理后端。这些副本是可替换的-前端不关心它们使用哪个后端。虽然组成后端集的实际POD可能会发生变化,但前端客户端不需要知道这一点,也不需要自己跟踪后端列表。服务抽象实现了这种解耦


注意:服务层不得与您的群集pods网络(法兰绒)或任何其他现有网络基础设施重叠。

谢谢您的回答,但我不确定我是否理解有关服务群集ip范围的部分。这些ip地址是如何使用的?谁给出了该范围内的ip地址?这些是跨工作节点共享的吗?它应该是a/16还是a/24网络?当每个吊舱都可以通过法兰绒层到达另一个吊舱时,为什么这种抽象是必要的?我将开始回答您的最后一个问题:-这是必要的,因为您无法控制您的吊舱将放置在何处或它们将分配哪个IP。那么你如何访问它们呢-你们将提供多少服务/24小时通常就足够了-它们在整个集群中共享——这些IP在创建服务时由kubernetes分配(尽管可以手动分配)-它们通常与内部DNS服务结合使用。但是集群cidr有什么区别呢?这就是我不明白的。集群cidr/flannel cidr也在整个集群中共享。服务只是使用iptables定义的虚拟IP,这些iptables透明地将数据包重定向到POD,它们有自己的cidr,这是使用服务集群cidr配置的。它就像一个内部平衡层,有自动发现功能。那么CNI是如何融入这一切的呢?当Docker配置成这样的法兰绒时,为什么我还需要CNI?