美文网首页
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