Kubernetes pod网络解析

  在Kubernetes中,会为每一个pod分配一个IP地址,pod内的所有容器都共享这个pod的network namespace,彼此之间使用localhost通信。

  那么pod内所有容器间的网络是如何实现的呢?

  实际上每个pod中有一个网络容器(使用image gcr.io/google_containers/pause),该容器先与pod内所有用户容器被创建,并且拥有该pod的network namespace,pod的其他用户容器使用Docker的--net=container:<id>选项加入该网络容器的network namespace中,这样就实现了pod内部所有容器对network namespace的共享。

  可以通过以下方式查看pod内所有容器的网络配置信息:

  docker inspect <container-id> | grep NetworkMode

 

posted @ 2018-04-14 18:00  Vincen_shen  阅读(410)  评论(0编辑  收藏  举报