个人理解是为方便管理设计出来的,由于容器在单个操作系统上的密度可以很大,
1)一方面,如果每个容器都占用一个IP stack等资源,那么操作系统资源耗费会比较多
2)一方面,多个容器之间可能存在一个逻辑上的相关管理,比如一个pod里面可以有一个web容器,一个mysql容器,web和mysql是互相关联的,如果放在一个pod中,二者可以共享一个IP stack
pod是基于容器更高层度的抽象,主要提供多容器的package运行。
其核心实现了类似容器操作系统的抽象,使得可以在不侵入pod中容器的前提下对其进行底层控制,实现包括Sidecar、Ambassador或Adapter相关的模式。
具体参考https://kubernetes.io/blog/2015/06/the-distributed-system-toolkit-patterns/ 和 https://kubernetes.io/blog/2016/06/container-design-patterns/