kubernetes的部署架構


組件架構圖

 

 如圖所示kubernetes分為master和node端,以及一個外接的cloud端。

  • master 控制平面,control plan,包括 kube-apiserver, kube-scheduler, kube-controller-manager, etcd.
    • kube-apiserver

      將kubernetes 控制平面api暴露出來的api服務。用於接收用戶端的請求,是控制平面的前端,是一個無狀態的服務,可以啟動多個實例用於分流請求流量。

    • kube-scheduler

      用於watch apiserver的資源變動(增刪改查),並調度至合適的node節點,從而來創建pod資源。通過一系列的filtering(過濾),scoring(打分)選取合適的node節點,調度pod運行。

    • kube-controller-manager

      每個控制器都是獨立的二進制進程,包括node controller, replication controller, endpoints controller, service account & token controllers。通過空置循環將期望狀態和運行狀態保持一致。

    • etcd

      高可用,KV結構的kubernetes后端數據存儲組件。

    • cloud-controller-manager

      與雲廠商服務能力對接組件 又稱為kubernetes cloudprovider

  • node節點 又稱為數據平面 data plan 包括 kubelet, kube-proxy, container runtime
    • kubelet

      運行在集群每個節點的客戶端,確保相關容器運行在pod中,通過pod specs標簽描述容器的運行狀態。

    • kube-proxy

      運行在集群每個節點的網絡代理組件,確保kubernetes服務鏈接和轉發的組件。

    • container runtime

      支持運行容器底層環境的軟件。支持docker containerd cri-io rktlet等

  • cloud端

    作為集群外部的附加能力,通過與cloud-controller-manager組件對接,擴展kubernetes集群於雲上動態擴展的特性。

  • addons 附加組件

    使用kubernetes resources增加集群功能,如DNS, Web UI(dashboard),container resources monitoring,cluster-level logging

    • dns   coredns
    • cni (flannel, calico)網絡插件接口  
    • Web UI(dashboard)可視化平台
    • container resources monitoring  容器資源監控
    • cluster-level logging 負責保存,搜索,查看容器日志    

 

工作流程

  • master

    用戶通過(API, Web UI, CLI)向APIserver 發送請求,kube-schedule 監聽apiserver資源變動,同時從node節點選取最合適的node節點開始調度,並把調度結果保存到etcd集群中去。

  • node

    kubelet也會監聽apiserver的資源變動,並在復合的node上通過kubelet調用相關docker引擎進行后續打包和構建操作。              

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM