Pod

是什麼

Pod 是 Kubernetes 環境中最基本的可部署單位。 它代表部署和管理容器化應用程式的必要組件。 每個 Pod 包含一個應用程式實例,並且可以由一個或是多個容器 所組成。 Kubernetes 將 Pod 視為大規模部署的一部分進行管理,並且可根據需求垂直或是水平地擴展 Pod 的規模。

解決的問題

雖然容器通常作為獨立的單位運行以及控制特定的工作負載, 但是某些情況下,容器間需要以緊密耦合的方式進行互動與被控制。

如果將這些密切相關的容器單獨管理,則會導致冗余的管理任務出現。 舉例來說,操作者必須反覆地確保這些容器彼此的部署狀態以確保他們保持在一起。 此外這些密切相關的容器其生命週期必須一致同步的被處理,但是卻只能各別單獨管理。

如何幫助我們

Pod 將緊密關係的容器們打包成一個單一的單位,此舉大幅度的簡化了容器操作。 譬如,輔助用容器通常都會伴隨主要容器一起使用已加入額外功能或是設定全域設定。 範例包含將基本設定給注入或是套用到主要容器的容器, 以 sidecar 來處理網路流量與路由相關的模式(參見 服務網格), 或是幫忙收集其他容器日誌的容器。

記憶體和 CPU 配置可以在 Pod 層級去定義,使得容器們可以彈性的方式去共享資源或是針對每個容器去設定。