Kubernetes簡介 Master Node

架構模型爲master/nodes(work)

可以理解master爲蜂后,nodes爲工蜂(幹活的)

  1. master爲集羣唯一入口,需要做高可用。
  2. 每一個node節點都提供一部分計算能力和存儲能力。(運行容器的節點)

請求過程

客戶端請求(創建啓動容器)首先發往master,master當中有一個調度器,會去分析各node節點的資源狀態,找一個最佳適配運行用戶所請求的容器的節點,並把它調度上去,由這個node的docker或是其他容器引擎來負責把這個容器啓動起來。啓動容器時檢查本地是否有鏡像,如果沒有需要從鏡像倉庫中pull來啓動(鏡像倉庫可以是雲上的,也可以是自檢的私有倉庫,也可以以容器運行在node節點上)。

Master

  • API Server 接收並處理用戶請求
  • Scheduler 調度容器創建的請求
  • controller-manager 確保已創建的容器處於健康狀態

控制器管理器是確保控制器健康的,控制器是用來確保容器健康的。

  • etcd 所有的組建的狀態保存

  • 再K8s上運行的最小單元不是容器,而是pod

  • kubernets並不直接調度容器,而是調度pod,pod是對容器的一層封裝。
  • pod裏可以有多個容器,他們共享同一網絡協議棧,存儲卷
  • 一般一個pod只有一個容器
  • label selector 可以通過控制器給pod打標籤,之後控制器可以根據tag來識別出pod

Node

  • kubelet 與apiserver交互運行的
  • docker 運行pod中的容器
  • kube-proxy 與apiserver進行通信,每一個pod發生變化,結果是需要保存到apiserver中,apiserver會生成一個通知事件,該事件可以被任何關聯的組建所接收到, 管理service,service的創建及變動是依靠kube-proxy在iptables上創建出規則

Pod

  1. 自主式Pod

自我管理,創建後仍然要提交給apiserver,由apiserver將其調度至指定的node的節點,由node啓動此pod,如果一個pod中的容器出現故障,需要重啓容器,需要又kubelet來完成。但是,如果節點故障了,該容器就消失了。無法實現全局進行調度。

  1. 控制管理的Pod

正是有控制器機制的引入使得pod成爲有生命週期的對象,而後由調度器將其調度至集羣中的某節點運行以後,有一些任務作爲守護進程運行爲pod或容器,要確保它們隨時處於運行狀態,一旦發生故障,要隨時重啓它或者替代它。

  • Replication Controller
    • 多退少補,必須精確符合人定義的期望
    • 滾動更新
    • 回滾
  • ReplicaSet
  • Deployment 只能管理無狀態應用
  • StatefulSet 管理有狀態的應用
  • DaemonSet 每個node上運行一個副本,而不是隨意運行
  • Job,Cronjob 作業
  • HPA(HorizontalPodAutoscaler) 自動分析添加或減少pod
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章