电子通讯

必看系列:Kubernetes网络模型原理详解

2020-07-12 22:15

 

  导语:Kubernetes目前看来已经成为了docker的应用最多的编排工具,所以学习使用docker容器的话,就免不了使用Kubernetes,但是其网络原理还是比较晦涩难懂,所以还是有必要专门解析关于Kubernetes的网络原理。

  Kubernetes使用了一种“IP-per-pod”网络模型:为每一个Pod分配了一个IP地址,Pod内部的docker容器共享Pod的网络空间,即它们共享Pod的网卡和IP。其原理是根据docker的“container网络”模型而来。

  Kubernetes把各node主机上的docker的bridge网络“外包”给了flannel,然后通过etcd将各node主机上的bridge网络信息收集起来,因此每个node之间的网络使用的是同网络的不同IP,了网络通讯的可靠性。其原理是根据docker的“bridge网络”模型而来。

  ①ClusterIP类型,这种类型的Service只会得到虚拟的IP和端口,只能在Kubernetes集群内部被访问,此模型是为默认类型。

  ③LoadBalancer类型,这种类型的Service除了会得到虚拟的IP和端口,Kubernetes还会在所有Node节点上为其分配端口,然后为其开通负载均衡。这种Service即可以从Kubernetes集群通过虚拟IP:端口访问,也可以从集群外部通过node节点的IP:nodePort访问,还可以通过负载均衡的IP访问。

  Kubernetes网络模型的理解会对使用第三方产商提供的服务有更深刻的体会,比如阿里云,华为云都已经全面支持Kubernetes的编排。其中涉及了很多Kubernetes的基本原理,回过头来仔细想想,也无非是万变不离其。