Kubernetes 入門之 Pod 控制器

在上一篇文章中工育,我們一起了解了 Kubernetes 提供的資源,重點講解了通過 yaml 的方式創(chuàng)建 Pod ,以及 Pod 和容器的生命周期。

這種創(chuàng)建 Pod 的方式我們稱為 **自主式創(chuàng)建 Pod **摩梧,當 Pod 退出了,此類型的 Pod 不會被創(chuàng)建宣旱,如上一節(jié)講的那樣仅父,我使用 kubectl delete pod podname 刪除 Pod 后不會自動創(chuàng)建。

還有一種創(chuàng)建 Pod 的方式我們稱為 控制器管理的 Pod浑吟, 通過字面意思應該能想到驾霜,這種 Pod 會被管理起來,始終要維持 Pod 副本的數(shù)量买置,即當 Pod 刪除之后會被自動創(chuàng)建。

通過這篇文章你將了解到這些 控制器

一强霎、什么是控制器

Kubernetes 中內(nèi)建了很多 controller(控制器)忿项,這些相當于一個狀態(tài)機,用來控制 Pod 的具體狀態(tài)和行為城舞。

二轩触、控制器類型

  • ReplicationController 和 ReplicaSet
  • Deployment
  • DaemonSet
  • StatefulSet
  • Job/CronJob
  • Horizontal Pod Autoscaling

2.1 ReplicationController 和 ReplicaSet

ReplicationController(RC)用來確保容器應用的副本數(shù)始終保持在用戶定義的副本數(shù),即如果有容器異常退出家夺,會自動創(chuàng)建新的 Pod 來替代脱柱;而如果異常多出來的容器也會自動回收。

在新版本的 Kubernetes 中建議使用 ReplicaSet 來取代 ReplicationController拉馋,ReplicaSet 跟 ReplicationController 沒有本質(zhì)的不同榨为,只是名字不一樣,并且 ReplicaSet 支持集合式的 selector煌茴。

2.2 Deployment

Deployment 為 Pod 和 ReplicaSet 提供了一個聲明式定義方法随闺,用來替代以前的 ReplicationController 來方便的管理應用。

命令式和聲明式

命令式編程:它側(cè)重于如何實現(xiàn)程序蔓腐,就像我們剛接觸編程的時候那樣矩乐,我們需要把程序的實現(xiàn)過程按照邏輯結(jié)果一步步寫下來。

聲明式編程:它側(cè)重于想要什么,然后告訴計算機/引擎散罕,讓它幫你去實現(xiàn)分歇。

典型的應用場景包括:

  • 定義 Deployment 來創(chuàng)建 Pod 和 ReplicaSet(Deployment 并不是直接管理 Pod,而是通過 RS 去管理 Pod)
  • 滾動升級和回滾應用
  • 擴容和縮容
  • 暫停和繼續(xù) Deployment

2.3 DeamonSet

DaemonSet 確保全部(或者一些)Node上運行一個 Pod 的副本欧漱。當有 Node 加入集群時职抡,也會為它們新增一個 Pod,當有 Node 從集群移除時硫椰,這些 Pod 也會被回收繁调。刪除 DaemonSet 將會刪除它創(chuàng)建的所有 Pod。

使用 DaemonSet 的一些典型用法:

  • 運行集群存儲 deamon靶草,例如在每個 Node 上運行 glusterd蹄胰、ceph
  • 在每個 Node 上運行日志收集 deamon,例如 fluentd奕翔、logstash
  • 在每個 Node 上運行監(jiān)控 daemon裕寨,例如 Prometheus Node Exporter

2.4 Job

Job 負責批處理任務,即僅執(zhí)行一次的任務派继,它保證批處理任務的一個或多個 Pod 成功結(jié)束宾袜。

2.5 CronJob

Cron Job 管理基于時間的 Job,即:

  • 在給定時間點只運行一次
  • 周期性地在給定時間點運行

典型的用法示例:

  • 在給你寫的時間點調(diào)度 Job 運行
  • 創(chuàng)建周期性運行的 Job驾窟,例如:數(shù)據(jù)庫備份庆猫、發(fā)送郵件

2.6 StatefulSet

StatefulSet 作為 Controller 為 Pod 提供唯一的標識,它可以保證部署和 scale 的順序绅络。

StatefulSet 是為了解決有狀態(tài)服務的問題(對應 Deployment 和 ReplicaSet 是為無狀態(tài)服務而設計)月培,其應用場景包括:

  • 穩(wěn)定的持久化存儲,即 Pod 重新調(diào)度后還是能訪問到相同的持久化數(shù)據(jù)恩急,基于 PVC 來實現(xiàn)
  • 穩(wěn)定的網(wǎng)絡標識杉畜,即 Pod 重新調(diào)度后其 Pod Name 和 Host Name 不變,基于 Headless Service (即沒有 Cluster IP 的 Service)來實現(xiàn)
  • 有序部署衷恭、有序擴展此叠,即 Pod 是有順序的,在部署或者擴展的時候要住所定義的順序依次進行(即從 0 到 N-1随珠,在下一個 Pod 運行之前所有之前的 Pod 必須都是 Running 和 Ready 狀態(tài))灭袁,基于 init containers 來實現(xiàn)
  • 有序收縮,有序刪除(即從 N-1 到 0 )

2.7 Horizontal Pod Autoscaling

顧名思義窗看,使 Pod 水平自動縮放简卧,提高集群的整體資源利用率。

Horizontal Pod Autoscaling 僅適用于 Deployment 和 ReplicaSet烤芦。在 v1 版本中僅支持根據(jù) Pod 的 CPU 利用率擴縮容举娩,在 v1alpha 版本中,支持根據(jù)內(nèi)存和用戶自定義的 metric 擴縮容。

下篇文章將對以上幾種類型的控制器單獨講解铜涉。


icon.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末智玻,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子芙代,更是在濱河造成了極大的恐慌吊奢,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纹烹,死亡現(xiàn)場離奇詭異页滚,居然都是意外死亡,警方通過查閱死者的電腦和手機铺呵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門裹驰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人片挂,你說我怎么就攤上這事幻林。” “怎么了音念?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵沪饺,是天一觀的道長。 經(jīng)常有香客問我闷愤,道長整葡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任讥脐,我火速辦了婚禮遭居,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘攘烛。我一直安慰自己,他們只是感情好镀首,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布坟漱。 她就那樣靜靜地躺著,像睡著了一般更哄。 火紅的嫁衣襯著肌膚如雪芋齿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天成翩,我揣著相機與錄音觅捆,去河邊找鬼。 笑死麻敌,一個胖子當著我的面吹牛栅炒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赢赊,長吁一口氣:“原來是場噩夢啊……” “哼乙漓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起释移,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤叭披,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后玩讳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涩蜘,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年熏纯,在試婚紗的時候發(fā)現(xiàn)自己被綠了同诫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡豆巨,死狀恐怖剩辟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情往扔,我是刑警寧澤贩猎,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站萍膛,受9級特大地震影響吭服,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蝗罗,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一艇棕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧串塑,春花似錦沼琉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至傻昙,卻和暖如春闺骚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背妆档。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工僻爽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贾惦。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓胸梆,卻偏偏與公主長得像敦捧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子乳绕,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容