K8S 控制器理解

控制器:  用來控制Pod的具體狀態和行爲網絡

Pod 分類less

  自主式Pod : Pod退出, 此類型Pod不會被建立. spa

  控制器Pod : 在控制器的生命週期始終維持Pod的副本數量. (就算Pod死亡, 也會自動建立維持Pod的數量)日誌

  

控制器分類blog

ReplicationController (RC), ReplicaSet(RS支持集合式的selector):  副本控制器生命週期

 

RS和Deploment關係, =>   Deploment經過RS來控制Pod部署

 

 

Deployment : it

 爲Pod和ReplicaSet提供一個聲明式方法,用來代替ReplicationController來方便管理應用,典型的場景有:io

 1>定義Deployment來建立Pod和ReplicaSet集羣

 2>滾動升級和回滾應用

 3>擴容和縮容

 4>暫停和繼續Deploment

 

DaemonSet

確保所有(一些)Node上運行一個Pod副本.  當有Node加入集羣,會爲他們新增一個Pod,刪除DaemonSet將會刪除它建立的Pod.

使用場景:

  運行集羣的存儲daemon,

  每一個Node的日誌收集, fluentd ,logtash

  每一個Node的監控程序.

  

Job

負責批量任務,僅執行一次任務, 保證批處理任務一個或多個Pod成功結束

 

CronJob
定時調度某個時間執行一次或循環屢次執行

 

StatefulSet

做爲Controller爲Pod提供惟一的標識 , 證部署和scale的順序.

StatefulSet用來解決有狀態服務的問題, 場景以下:

1>穩定的持久化存儲, 即Pod從新調度後能訪問持久化數據,基於PCV實現,

2>穩定的網絡標識, 即Pod從新調度後PodName和HostName不變, 基於Headless Services(即沒有Cluster IP的Service) 來實現.
3>有序部署和有序擴展, 0-> N  下一個執行基於前一個已經Running或Ready, 基於InitC實現

4>有序刪除N->0

 

Horizontal Pod Autosacling

相關文章
相關標籤/搜索