美文网首页
Kubernetes进阶

Kubernetes进阶

作者: bernierayxu | 来源:发表于2019-04-27 23:32 被阅读0次
1. k8s的网络模型是什么?
  • 容器与容器之间要能相互通信
  • pod和pod之间要能相互通信
  • 任意pod和任意service之间要能相互通信
  • 集群外部和内部组件要相互通信
  • 任意node/pod的ip地址要唯一
  • 采用了网络插件flannel/calico等第三方解决方案。
  • 其中flannel的ip地址为..124.0或者..125.0,然后给docker0分配的ip地址为..124.1或者..125.1,因为网段地址可能不够,所以有时候需要用到ipv6
    网络模型
    网络模型
  • 其中node1的pod想要和node2的pod想要通信,则先通过veth0找到docker0再到flanneld,flanneld去etcd找到node2的ip地址,然后通过eth0和node2进行交流,所以前提是node1和node2之间必须要能够进行相互通信。


    Flannel实现跨node之间的通讯
2. k8s的ip概念有哪些?
集群IP概念
  • proxy ip可以通过命令行查看,可以对外访问


    proxy ip
  • service ip可以通过k8s的控制面板查看,其由lvs分配,是一个固定的虚拟ip


    service ip
  • node ip是通过命令行查看,安装不同系统的镜像会获得不同名字。


    node ip
3. k8s和docker的网络模式有什么区别?

答:docker有4种网络模式,默认为bridge,k8s只用bridge这一种网络模式,因为这种模式可以使得容器和宿主机相互通信。


docker
k8s
k8s
4. k8s容器之间是如何进行通信的?

答:pod是一堆容器的组合,容器是没有ip的,他们使用的pod的ip,共享pod的网络命名空间,通过localhost可以相互通信,所以相互之间不能有重复的端口号。


pod网络
5. k8s的pod之间是如何进行通信的?
pod的通信
  • 如果两个pod是同一个node,因为pod的内网ip是由同一个网卡docker0分发的,所以是可以相互通信的,相当于内网ip之间可以互相ping。


    同一个node
  • 如果两个pod是不同node,首先打通不同node之间的通信,使之在同一个通信网段


    不同node
6. service的ip是虚拟的,kube-proxy已经帮忙做好了复杂均衡。
service ip
kube proxy
7. kube-dns的好处是不用记ip
kube-dns
8. 开源的网络组件有哪些?
CNM
CNI

相关文章

网友评论

      本文标题:Kubernetes进阶

      本文链接:https://www.haomeiwen.com/subject/lwacnqtx.html