k8s Pod控制器

簡(jiǎn)介

在kubernetes平臺(tái)上,我們很少會(huì)直接創(chuàng)建一個(gè)Pod苗桂,在大多數(shù)情況下會(huì)通過(guò)RC玉控、Deployment疲吸、Job等控制器完成對(duì)一組Pod副本的創(chuàng)建座每、調(diào)度及全生命周期的自動(dòng)控制任務(wù)

控制器種類(lèi)

  • ReplicationController
    RC前鹅,用來(lái)確保容器應(yīng)用的副本數(shù)始終保持在用戶(hù)定義的副本數(shù)摘悴,即如果有容器異常退出,會(huì)自動(dòng)創(chuàng)建新的 Pod 來(lái)替代舰绘;而如果異常多出來(lái)的容器也會(huì)自動(dòng)回收
  • ReplicaSet
    在新版本的 Kubernetes 中建議使用 ReplicaSet 來(lái)取代 ReplicationController蹂喻,ReplicaSet 跟 ReplicationController 沒(méi)有本質(zhì)的不同,只是名字不一樣捂寿,并且 ReplicaSet 支持集合式的 selector
  • Deployment
    Deployment 為 Pod 和 ReplicaSet 提供了一個(gè)聲明式定義方法口四,用來(lái)替代以前的 ReplicationController 來(lái)方便的管理應(yīng)用
  • DaemonSet
    DaemonSet 確保全部(或者一些)Node上運(yùn)行一個(gè) Pod 的副本。當(dāng)有 Node 加入集群時(shí)秦陋,也會(huì)為它們新增一個(gè) Pod蔓彩,當(dāng)有 Node 從集群移除時(shí),這些 Pod 也會(huì)被回收驳概。刪除 DaemonSet 將會(huì)刪除它創(chuàng)建的所有 Pod
  • StatefulSet
    StatefulSet 作為 Controller 為 Pod 提供唯一的標(biāo)識(shí)赤嚼,它可以保證部署和 scale 的順序。StatefulSet 是為了解決有狀態(tài)服務(wù)的問(wèn)題
  • Job
    Job 負(fù)責(zé)批處理任務(wù)顺又,即僅執(zhí)行一次的任務(wù)更卒,它保證批處理任務(wù)的一個(gè)或多個(gè) Pod 成功結(jié)束
  • CronJob
    Cron Job 管理基于時(shí)間的 Job,即:在給定時(shí)間點(diǎn)只運(yùn)行一次
    稚照,周期性地在給定時(shí)間點(diǎn)運(yùn)行
  • Horizontal Pod Autoscaling
    顧名思義蹂空,使 Pod 水平自動(dòng)縮放,提高集群的整體資源利用率

Deployment

deployment的主要功能之一就是自動(dòng)部署一個(gè)容器應(yīng)用的多份副本果录,以及持續(xù)監(jiān)控副本的數(shù)量上枕,在集群內(nèi)始終維持用戶(hù)指定的副本數(shù)量

Deployment 創(chuàng)建

  • 例子
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:stable
            ports:
            - containerPort: 80
    
  • 部署并記錄操作
    kubectl apply -f nginx-deployment.yaml --record

Pod的升級(jí)和回滾

  • 升級(jí)
    • 直接指定image
      kubectl set image deployment/nginx-deployment nginx=nginx:latest --record
    • 或動(dòng)態(tài)更改
      kubectl edit deployment/nginx-deployment
    • 更新策略-spec.strategy.type
      • recreate(重建)
        先殺掉所有正在運(yùn)行的Pod,然后創(chuàng)建新的Pod
      • rollingupdate(滾動(dòng)更新)-默認(rèn)
        以滾動(dòng)的方式來(lái)逐個(gè)更新Pod
    • spec.strategy.rollingupdate.maxUnavailablespec.strategy.rollingupdate.maxSurge
      maxUnavailable表示最多不可用弱恒,maxSurge表示pod總數(shù)量-pod所需數(shù)量辨萍,從kubernetes1.6版本開(kāi)始maxUnavailablemaxSurge默認(rèn)值從1改為所需要副本的25%
  • 回滾
    • 查看指定deployment的部署歷史記錄
      kubectl rollout history deployment/nginx-deployment
    • 查看指定deployment的部署歷史記錄的指定記錄
      kubectl rollout history deployment/nginx-deployment --revision=2
    • 回滾到上一版本
      kubectl rollout undo deployment/nginx-deployment
    • 回滾到指定版本
      kubectl rollout undo deployment/nginx-deployment --to-revision=1

暫停和恢復(fù)Deployment的部署操作

對(duì)于一次復(fù)雜的Delpoyment配置更改,為了避免頻繁觸發(fā)更新操作斤彼,可以先暫停deployment的更新操作

  • 暫停
    kubectl rollout pause deployment/nginx-deployment
  • 恢復(fù)
    kubectl rollout resume deployment/nginx-deployment

Pod的擴(kuò)縮容

  • 指定pod副本數(shù)量
    kubectl scale deployment/nginx-deployment --replicas=10
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末分瘦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子琉苇,更是在濱河造成了極大的恐慌嘲玫,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件并扇,死亡現(xiàn)場(chǎng)離奇詭異去团,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)土陪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)昼汗,“玉大人,你說(shuō)我怎么就攤上這事鬼雀∏曛希” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵源哩,是天一觀的道長(zhǎng)鞋吉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)励烦,這世上最難降的妖魔是什么谓着? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮坛掠,結(jié)果婚禮上赊锚,老公的妹妹穿的比我還像新娘。我一直安慰自己屉栓,他們只是感情好舷蒲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著系瓢,像睡著了一般阿纤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上夷陋,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天欠拾,我揣著相機(jī)與錄音,去河邊找鬼骗绕。 笑死藐窄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酬土。 我是一名探鬼主播荆忍,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼撤缴!你這毒婦竟也來(lái)了刹枉?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤屈呕,失蹤者是張志新(化名)和其女友劉穎微宝,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體虎眨,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蟋软,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年镶摘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岳守。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凄敢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出湿痢,到底是詐尸還是另有隱情涝缝,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布蒙袍,位于F島的核電站俊卤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏害幅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一岂昭、第九天 我趴在偏房一處隱蔽的房頂上張望以现。 院中可真熱鬧,春花似錦约啊、人聲如沸邑遏。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)记盒。三九已至,卻和暖如春外傅,著一層夾襖步出監(jiān)牢的瞬間纪吮,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工萎胰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碾盟,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓技竟,卻偏偏與公主長(zhǎng)得像冰肴,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子榔组,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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