Kubernetes 容器通信方式
概述
k8s里面的容器是存在于pod内,所以容器之间网络通信一般分为三种
同一pod多个容器通信
同一主机不同pod容器通信
不同主机pod容器通信
pod内部容器通信
在创建pod时,就会默认启动一个pause容器,只要pod运行,pause容器就会被启动。pause提供了共享网络栈以及数据存储共享。通过localhost:port(lo)地址去访问,不需要指明对端ip
同一主机不同pod容器通信
基于overlay network实现,通过虚拟网卡docker0进行网络通信
不同主机pod网络通信
通过Flannel 网络规划服务,底层通过udp封装pod虚拟ip地址实现
ETCD 存储管理Flannel 可分配的ip地址段资源
监控ETCD中每个pod的实际地址,并在内存中建立维护Pod节点路由表,当请求发过来的时候,立即去etcd里查找并发现。