Pod概覽
理解Pod
Pod是kubernetes中你可以創建和部署的最小也是最簡的單位,pod代表著集群中運行的進程。
Pod中封裝著應用的容器(有的情況下是好幾個容器),存儲、獨立的網絡IP,管理容器如何運行的策略選項。Pod代表著部署的一個單位:kubemetes中應用的一個實例,可能由一個或多個容器組合在一起共享資源。
在Kubernetes集群中Pod有如下兩種使用方式:
一個Pod中運行一個容器:“每個Pod中一個容器”的模式是最常見的用法:在這種使用方式中,你可以把Pod想象成是單個容器的封裝,kuberentes管理的是Pod而不是直接管理容器。
在一個pod中同時運行多個容器:一個pod中也可以同時封裝幾個需要緊密耦合互信協作的容器,它們之間共享資源。這些在同一個Pod中的容器可以互相協作成為一個service單位——一個容器共享文件,另一個“sidecar”容器來更新這些文件。Pod將這些容器的存儲資源作為一個實體來管理
每個Pod都是應用的一個實例。如果你想平行擴展應用的話(運行多個實例),你應該運行多個Pod,每個Pod都是一個應用實例。在Kubernetes中,這通常被稱為replication
Pod中如何管理多個容器
Pod中可以同時運行多個進程(作為容器運行)協同工作。同一個Pod容器會自動分配到同一個node上。同一個Pod中的容器共享資源、網絡環境和依賴,他們總是被同時調度
注意在一個pod中同時運行多個容器是一種比較高級的用法。只有當你的容器需要緊密配合協作的時候才考慮用這種模式。例如,你有一個容器作為web服務器運行,需要緊密配合協作的時候才考慮用這種模式。例如,你有一個容器作為web服務器運行,需要用到共享的volume,有另一個“sidecar”容器來從遠端獲取資源更新這些文件,如下圖所示
Pod中可以共享兩種資源:網絡和存儲
網絡
每個Pod都會被分配一個唯一的IP地址。Pod中的所有容器共享網絡空間,包括IP地址和端口。Pod內部的容器可以使用localhost互相通信。Pod中的容器與外界通信時,必須