POD控制器(kube-controller-manager)

Controller Manager 由 kube-controller-manager 和 cloud-controller-manager 組成。 它通過 apiserver 監(jiān)控整個集群的狀態(tài)靠汁, 并確保集群處于預(yù)期的工作狀態(tài)童擎。

kube-controller-manager 由一系列的控制器組成 :
Replication Controller帐我、Node Controller、CronJob Controller子眶、Daemon Controller鹰溜、Deployment Controller、Endpoint Controller...等

cloud-controller-manager 在 Kubernetes 啟用 Cloud Provider 的時候才需要,也包括一系列的控制器:
Node Controller吞彤、Route Controller我衬、Service Controller

Pod控制器介紹:
1、Replication Controller
主要作用饰恕,控制有特定數(shù)量的Pod副本運行挠羔。若多余特定數(shù)量就kill,若少于特定數(shù)量則create埋嵌。Replication Controller 就像一個進程管理器破加,監(jiān)管著不同node上的多個pod,而不是單單監(jiān)控一個node上的pod,Replication Controller 會委派本地容器來啟動一些節(jié)點上服務(wù)。
注意:
1)Replication Controller只會對RestartPolicy = Always的Pod的生效(RestartPolicy的默認值就是Always)雹嗦,Replication Controller 不會去管理其他啟動策略pod拌喉。
2)Replication Controller永遠不會自己關(guān)閉。

2俐银、ReplicaSet
ReplicaSet和 Replication Controller的區(qū)別在于選擇器的支持尿背。Replication Controller只支持基于等式的selector(env=dev或environment!=qa),但ReplicaSet還支持新的捶惜,基于集合的selector(version in (v1.0, v2.0)或env notin (dev, qa))田藐。

3、Deployment
Deployment為Pod和Replica Set提供聲明式更新吱七。
使用流程Demo:
1)使用Deployment來創(chuàng)建ReplicaSet汽久。ReplicaSet在后臺創(chuàng)建pod。檢查啟動狀態(tài)(成功/失敗)
2)更新Deployment的PodTemplateSpec字段來聲明Pod的新狀態(tài)踊餐。這會創(chuàng)建一個新的ReplicaSet景醇,Deployment會按照控制的速率將pod從舊的ReplicaSet移動到新的ReplicaSet中。
3)如果當(dāng)前狀態(tài)不穩(wěn)定吝岭,回滾到之前的Deployment revision三痰。每次回滾都會更新Deployment的revision吧寺。
4)擴容Deployment以滿足更高的負載。
5)暫停Deployment來應(yīng)用PodTemplateSpec的多個修復(fù)散劫,然后恢復(fù)上線稚机。
6)根據(jù)Deployment 的狀態(tài)判斷上線是否成功。
7)清除舊的不必要的ReplicaSet获搏。

4赖条、StatefulSet
有狀態(tài)服務(wù)使用。
應(yīng)用場景:
1)穩(wěn)定的持久化存儲(Pod重新調(diào)度后還是能訪問到相同的持久化數(shù)據(jù)常熙,基于PVC來實現(xiàn))
2)穩(wěn)定的網(wǎng)絡(luò)標(biāo)志(Pod重新調(diào)度后其PodName和HostName不變纬乍,基于Headless Service(即沒有Cluster IP的Service)來實現(xiàn))
3)有序部署,有序擴展(Pod是有順序的裸卫,在部署或者擴展的時候要依據(jù)定義的順序依次依次進行(即從0到N-1仿贬,在下一個Pod運行之前所有之前的Pod必須都是Running和Ready狀態(tài)),基于init containers來實現(xiàn))
4)有序收縮彼城,有序刪除(即從N-1到0)

  StatefulSet的組成:
      1)Headless Service(網(wǎng)絡(luò)標(biāo)志(DNS domain))
      2)volumeClaimTemplates(創(chuàng)建PersistentVolumes)
      3)StatefulSet(定義具體應(yīng)用)

  Pod的DNS格式:statefulSetName-{0..N-1}.serviceName.namespace.svc.cluster.local
       1)serviceName為Headless Service的名字
       2)0..N-1為Pod所在的序號诅蝶,從0開始到N-1
       3)statefulSetName為StatefulSet的名字
       4)namespace為服務(wù)所在的namespace,Headless Servic和StatefulSet必須在相同的namespace
       5)cluster.local為Cluster Domain

5募壕、DaemonSet
保證在每個Node上都運行一個容器副本调炬,常用來部署一些集群的日志、監(jiān)控或者其他系統(tǒng)管理應(yīng)用舱馅。
應(yīng)用場景:
1)日志收集(fluentd缰泡,logstash)
2)系統(tǒng)監(jiān)控(Prometheus Node Exporter,collectd代嗤,New Relic agent棘钞,Ganglia gmond)
3)系統(tǒng)程序(kube-proxy, kube-dns, glusterd, ceph)

例子:
1、Deployment

apiVersion: v1
kind: Deployment
metadata: 
  name: myapp-deploy
spec:
  replicas: 5
  selector: 
    matchLabels:
      app: myapp
      release: canary
  template:
    metadata:
      labels:
        app: myapp
        release: canary
    spec:
      containers:
      - name: myapp
        image: ikubernetes/myapp:v2
        ports:
        - name: httpd
          containerPort: 80

2干毅、Deployment+ DaemonSet

apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: redis
      role: logstor
  template:
    metadata:
      labels:
        app: redis
        role: logstor
    spec:
      containers:
      - name: redis
        image: redis:4.0-alpine
        ports:
        - name: redis
          containerPort: 6379
  
---
apiVersion: apps/v1
kind: DaemonSet
metadata: 
  name: filebeat-ds
spec:
  selector: 
    matchLabels:
      app: filebeat
      release: stable
  template:
    metadata:
      labels:
        app: filebeat
        release: stable
    spec:
      containers:
      - name: filebeat
        image: ikubernetes/filebeat:5.6.5-alpine
        env:
        - name: REDIS_HOST
          value: redis.default.svc.cluster.local
        - name: REDIS_LOG_LEVEL
          value: info

3宜猜、StatefulSet

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: nginx
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: web
spec:
  serviceName: "nginx"
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: gcr.io/google_containers/nginx-slim:0.8
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: www
          mountPath: /usr/share/nginx/html
  volumeClaimTemplates:
  - metadata:
      name: www
      annotations:
        volume.alpha.kubernetes.io/storage-class: anything
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi

參考資料:

《每天5分鐘玩轉(zhuǎn)Kubernetes》

《黑馬k8s集群技術(shù)》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市硝逢,隨后出現(xiàn)的幾起案子姨拥,更是在濱河造成了極大的恐慌,老刑警劉巖渠鸽,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叫乌,死亡現(xiàn)場離奇詭異,居然都是意外死亡徽缚,警方通過查閱死者的電腦和手機憨奸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凿试,“玉大人排宰,你說我怎么就攤上這事似芝。” “怎么了额各?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵国觉,是天一觀的道長吧恃。 經(jīng)常有香客問我虾啦,道長,這世上最難降的妖魔是什么痕寓? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任傲醉,我火速辦了婚禮,結(jié)果婚禮上呻率,老公的妹妹穿的比我還像新娘硬毕。我一直安慰自己,他們只是感情好礼仗,可當(dāng)我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布吐咳。 她就那樣靜靜地躺著,像睡著了一般元践。 火紅的嫁衣襯著肌膚如雪韭脊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天单旁,我揣著相機與錄音沪羔,去河邊找鬼。 笑死象浑,一個胖子當(dāng)著我的面吹牛蔫饰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播愉豺,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼篓吁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蚪拦?” 一聲冷哼從身側(cè)響起杖剪,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎外盯,沒想到半個月后摘盆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡饱苟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年孩擂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箱熬。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡类垦,死狀恐怖狈邑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蚤认,我是刑警寧澤米苹,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站砰琢,受9級特大地震影響蘸嘶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜陪汽,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一训唱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挚冤,春花似錦况增、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至澜薄,卻和暖如春为肮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背表悬。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工弥锄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蟆沫。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓籽暇,卻偏偏與公主長得像,于是被迫代替她去往敵國和親饭庞。 傳聞我的和親對象是個殘疾皇子戒悠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,665評論 2 354

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