k8s基礎概念:pause容器和pod控制器類型

pause容器的作用

在這裏插入圖片描述

  • pause容器:只要是有容器啓動,pause就會啓動。
  • pod內的其他容器會共用pause容器的網絡棧和存儲卷。
  • 容器是沒有自己的IP地址的,都共用pause容器的。
  • 要保證pod內的其他容器的端口不能衝突,彼此都是通過localhost就可以訪問。如果端口衝突就會啓動不了或是無限重啓。

pod控制器類型

在這裏插入圖片描述

RC RS Deployment

在這裏插入圖片描述

  • 官方建議用ReplicaSet替代ReplicationController。RS支持集合式的selector,可以根據label和version來對pod進行操作。
  • 建議使用Deployment來自動管理RS。Deployment支持滾動更新(灰度發佈),比如要發佈一個新的版本,可以先創建出新版本的pod,然後將舊版本的pod依次刪除,從而實現滾動更新,RS不支持這種滾動更新操作。
  • Deployment不支持pod的創建,是通過RS來實現pod的創建的。比如:實現版本的滾動更新過程,會通過創建一個新的RS來創建出新版本的pod,同時將舊的RS管理的舊版本的pod依次刪除。
    在這裏插入圖片描述
    在這裏插入圖片描述
  • 同時Deployment可以支持回滾。原因就是舊的RS並不會被刪除,而是被停用,回滾時會將舊版本的RS重新啓用,從而達到回滾的目的。
    在這裏插入圖片描述

HPA

  • 動態擴容
    在這裏插入圖片描述
    在這裏插入圖片描述
  • 根據CPU利用率來擴容,≤max定義的最大數量。
  • 一旦CPU利用率不足,就會刪除pod,但最終剩餘的pod數量不會低於min定義的數量。

StatefulSet

在這裏插入圖片描述

  • mysql,mongodb都要實現數據的實時更新和存儲,將其抽出集羣再放回來就沒法正常工作了,這些就是典型的有狀態服務。
  • StatefulSet能夠實現pod重新調度後還是能基於PVC訪問到相同的持久化數據,並且數據還不會丟失。
  • 有序部署:比如先啓動Nginx,再啓動tomcat,最後啓動MySQL就會報錯,StatefulSet可以實現有序啓動,mysql–>tomcat–>nginx

截止到目前,MySQL在k8s環境下還是不能跟傳統環境下相比擬,還是有缺憾的,但是StatefulSet是一種很好的思想。

DaemonSet

在這裏插入圖片描述

Job, CronJob

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章