Kubernetes是一個針對容器應用,進行自動部署,彈性伸縮,和管理的開源系統。主要功能是生産環境的容器編排。

image.png
Kubernetes名字太長了,叫起來有點麻煩,而Kubernetes首字母與結尾字母之間有8個字母,是以被稱作K8S。
K8S曆史
K8S是建立在谷歌内部有超過15年的曆史,來源于谷歌内部的Borg系統,集結了Borg的精華。
- 2014年6月 谷歌雲計算專家埃裡克·布魯爾(Eric Brewer)在舊金山的釋出會為這款新的開源工具揭牌。
- 2015年7月22日K8S疊代到 v 1.0并正式對外公布
- 大約每100天更新一次,如今已是 V 1.10版本
K8S的架構
我們先從簡單的架構圖看,下圖所示架構,提供了松耦合的服務發現。像大多數的分布式系統,K8S叢集至少需要一個主節點(Master)和多個計算節點(Node)。
- 主節點主要用于暴露API,排程部署,和節點的管理。
- 計算節點運作一個容器運作環境,如Docker或rkt,同時運作一個K8S的代理用于同主節點通信。計算節點也會運作一些額外的元件,像記錄日志,節點監控,服務發現等等。計算節點是K8S叢集中真正工作的節點。
K8S縮略架構圖
K8S架構繼續細分:
K8S架構細分
主節點運作元件:
- Api Server提供了資源操作的唯一入口,并提供認證、授權、通路控制、API注冊和發現等機制;
- Scheduler負責資源的排程,按照預定的排程政策将Pod排程到相應的機器上;
- etcd儲存了整個叢集的狀态;
- Controller manager負責維護叢集的狀态,比如故障檢測、自動擴充、滾動更新等;
K8S 主節點
K8S的計算節點:
- kube-proxy負責為Service提供cluster内部的服務發現和負載均衡;
- Docker為容器的運作環境
- kubelet負責維護容器的生命周期,同時也負責Volume(CVI)和網絡(CNI)的管理,一般運作在所有的節點
- Fluentd主要做日志收集、存儲與查詢,可使用其它的元件代替。
- 可選的kube-dns負責為整個叢集提供DNS服務
K8S計算節點
最後
這篇文章,我們簡單的介紹下K8S的曆史與架構,能對K8S心中有個大概,下面一篇我們詳細的梳理K8S的各個概念。
參考
另外
我在知識星球開通了一個交流群,免費的。希望能和大家一起交流學習,進群的可以獲得500G Java學習資料奧,多年的收藏,除了Java之外,還收藏了IOS,Linux,Android相關資料。想要的也可以找我拿。
猩球圖檔