kubernetes(k8s)架構及核心概念

K8s基礎原理

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

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

簡介

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. 資源類型:spa

基礎資源: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組件:

相關文章
相關標籤/搜索