每日一问 k8s 中的 pod 有几种通信方式?分别是什么?

lework · 2020年08月06日 · 23 次阅读

有 4 种通信

  1. 本地通信,说的是 Pod 内部,不同容器之前通信。因为 Pod 内网容器之间共享一个网络协议栈,所以他们之间的通信,可以通过 loopback 设备完成。
  2. 同节点 Pod 之间的通信,是 cni0 虚拟网桥内部的通信,这相当于一个二层局域网内部设备通信。
  3. 跨节点 Pod 通信略微复杂一点,但也很直观,发送端数据包,通过 cni0 网桥的网关,流转到节点上,然后经过节点 eth0 发送给 VPC 路由。这里不会经过任何封包操作。当 VPC 路由收到数据包时,它通过查询路由表,确认数据包目的地,并把数据包发送给对应的 ECS 节点。而进去节点之后,因为 flanneld 在节点上创建了真的 cni0 的路由,所以数据包会被发送到目的地的 cni0 局域网,再到目的地 Pod。
  4. Pod 与非 Pod 网络的实体通信,需要经过节点上 iptables 规则做 snat,而此规则就是 flanneld 依据命令行--ip-masq 选项做的配置。
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册