kubernetes(k8s)架構及核心概念


K8s基礎原理

k8s中文社區: https://www.kubernetes.org.cn/

k8s快速入門: http://www.dockone.io/article/932

簡介

Kubernetes 簡單的說就是一個容器集群編排工具

Kubernetes 是為生產環境而設計的容器調度管理系統,對於負載均衡、 服務發現、高可用、滾動升級、自動伸縮等容器雲平台的功能要求有原生支持

一個K8s集群是由分布式存儲(etcd)、服務節點(Minion, etcd現在稱為Node)和控制節點(Master)構成的。所有的集群狀態都保存在etcd中,Master節點上則運行集群的管理控制模塊。Node節點是真正運行應用容器的主機節點,在每個Minion節點上都會運行一個Kubelet代理,控制該節點上的容器、鏡像和存儲卷等。

1. Master(管理節點)核心組件:

  • API-Server ---k8s系統對外接口,提供Restful API供客戶端和其他組件調用,支持水平擴展
  • Scheduler  ---負責對資源進行調度,具體負責分配某個請求的Pod到某個節點上
  • Controller  ---對不同資源的管理器,維護集群的狀態,包括故障檢測、自動擴展、滾動更新等
  • Etcd           ---作為K/V數據庫,存放集群狀態和配置相關數據

                      

2. Node(工作節點)核心組件:

  • Kubelet --- 節點上最主要的工作代理,匯報節點狀態並實現容器組的生命周期管理
  • Kube-proxy --- 代理對抽象應用地址的訪問,負責配置正確的服務發現和負載均衡轉發規則(通常利用iptables規則)
  • Container runtime --- 本地容器引擎 (標准僅支持docker(rkt,cri-o,frakti等其他類型的容器使用CRI封裝好的外部命令))

3. Addons(可選組件):

  • DNS --- 記錄啟動的容器組和服務地址,為集群提供dns服務
  • CNI  --- 容器網絡插件必選(Flannel,calio,...)
  • WebUI  --- web界面
  • ...

4. 資源類型:

基礎資源:Pod / Service / Namespace / Volume

高級資源控制器(建立在基礎資源之上):ReplicaSet / Deployment / Daemonset / statefulSet / Job

 

  • Client通過service-ip(cluster-ip)訪問Service
  • Service通過Label(Label select)來關聯到Pod
  • Service也有可能會被刪除,所以Client還是要通過DNS解析獲得service-ip
  • Pod  --- 容器運行所在地,也是k8s操作的最小單元。  同一個Pod內的容器默認時共享網絡的,並且可以使用同一存儲卷

5. Kubernetes Network

 

K8S的架構圖:

 

K8S組件:

 


免責聲明!

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



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