在Kubernetes中最基礎的單元是pod , 每個pod都有一個基礎容器,這幾容器就是pause容器。
Pause容器 全稱infrastucture container(又叫infra)基礎容器。
也可以把pod理解為一組容器的集合。
每個Pod里運行着一個特殊的被稱之為Pause的容器,其他容器則為業務容器,這些業務容器共享Pause容器的網絡棧和Volume掛載卷,
因此他們之間通信和數據交換更為高效,在設計時我們可以充分利用這一特性將一組密切相關的服務進程放入同一個Pod中。
同一個Pod里的容器之間僅需通過localhost就能互相通信。
在ghost容器中同時可以看到pause和nginx容器的進程,並且pause容器的PID是1。而在kubernetes中容器的PID=1的進程即為容器本身的業務進程。
kubernetes中的pause容器主要為每個業務容器提供以下功能:
PID命名空間:Pod中的不同應用程序可以看到其他應用程序的進程ID。
網絡命名空間:Pod中的多個容器能夠訪問同一個IP和端口范圍。
IPC命名空間:Pod中的多個容器能夠使用SystemV IPC或POSIX消息隊列進行通信。
UTS命名空間:Pod中的多個容器共享一個主機名;Volumes(共享存儲卷):
Pod中的各個容器可以訪問在Pod級別定義的Volumes。