k8s--pause容器


當我們在k8s集群的node節點上面docker ps時會發現好多pause容器,這些pause容器是干什么的呢?

  1. Docker支持容器,這對於部署單個軟件單元非常有用。但是,當您想同時運行多個軟件時,這個模型可能會變得有點麻煩。當開發人員創建Docker映像時,經常會看到這種情況,這些映像使用supervisor作為切入點來啟動和管理多個進程。對於生產系統,許多人發現,將這些應用程序部署在部分隔離且部分共享環境的容器組中更有用。
  2. Kubernetes為這個用例提供了一個叫做pod的干凈的抽象。它隱藏了Docker標志的復雜性,以及照看容器、共享卷等的需要。它還隱藏了容器運行時之間的差異。例如,rkt本身支持pod,所以Kubernetes要做的工作更少,但作為Kubernetes的用戶,您不必擔心它。
    原則上,任何人都可以配置Docker來控制容器組之間的共享級別——你只需要創建一個父容器,知道正確的標志設置來創建共享相同環境的新容器,然后管理這些容器的生命周期。管理所有這些部件的生命周期可能非常復雜。
  3. 在Kubernetes中,pause容器作為你的pod中所有容器的“父容器”。pause容器有兩個核心職責。首先,它是pod中Linux名稱空間共享的基礎。其次,啟用了PID(進程ID)命名空間共享后,它為每個pod充當PID 1,並接收僵屍進程。 PID 為 1 的進程是 init 進程,即所有進程的父進程。init 進程比較特殊,它維護一張進程表並且不斷地檢查其他進程的狀態。init 進程的其中一個作用是當某個子進程由於父進程的錯誤退出而變成了"孤兒進程",便會被 init 進程收養並在該進程退出時回收資源。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM