Kubernetes是一個針對容器應(yīng)用,進行自動部署揍庄,彈性伸縮,和管理的開源系統(tǒng)娩怎。主要功能是生產(chǎn)環(huán)境的容器編排帕识。
image.png
Kubernetes名字太長了泛粹,叫起來有點麻煩,而Kubernetes首字母與結(jié)尾字母之間有8個字母渡冻,因此被稱作K8S戚扳。
K8S歷史
K8S是建立在谷歌內(nèi)部有超過15年的歷史,來源于谷歌內(nèi)部的Borg系統(tǒng)族吻,集結(jié)了Borg的精華帽借。
- 2014年6月 谷歌云計算專家埃里克·布魯爾(Eric Brewer)在舊金山的發(fā)布會為這款新的開源工具揭牌。
- 2015年7月22日K8S迭代到 v 1.0并正式對外公布
- 大約每100天更新一次超歌,如今已是 V 1.10版本
K8S的架構(gòu)
我們先從簡單的架構(gòu)圖看砍艾,下圖所示架構(gòu),提供了松耦合的服務(wù)發(fā)現(xiàn)巍举。像大多數(shù)的分布式系統(tǒng)脆荷,K8S集群至少需要一個主節(jié)點(Master)和多個計算節(jié)點(Node)。
- 主節(jié)點主要用于暴露API懊悯,調(diào)度部署蜓谋,和節(jié)點的管理。
- 計算節(jié)點運行一個容器運行環(huán)境炭分,如Docker或rkt桃焕,同時運行一個K8S的代理用于同主節(jié)點通信。計算節(jié)點也會運行一些額外的組件捧毛,像記錄日志观堂,節(jié)點監(jiān)控让网,服務(wù)發(fā)現(xiàn)等等。計算節(jié)點是K8S集群中真正工作的節(jié)點师痕。
K8S縮略架構(gòu)圖
K8S架構(gòu)繼續(xù)細分:
K8S架構(gòu)細分
主節(jié)點運行組件:
- Api Server提供了資源操作的唯一入口溃睹,并提供認(rèn)證、授權(quán)胰坟、訪問控制因篇、API注冊和發(fā)現(xiàn)等機制;
- Scheduler負責(zé)資源的調(diào)度腕铸,按照預(yù)定的調(diào)度策略將Pod調(diào)度到相應(yīng)的機器上惜犀;
- etcd保存了整個集群的狀態(tài);
- Controller manager負責(zé)維護集群的狀態(tài)狠裹,比如故障檢測虽界、自動擴展、滾動更新等涛菠;
K8S 主節(jié)點
K8S的計算節(jié)點:
- kube-proxy負責(zé)為Service提供cluster內(nèi)部的服務(wù)發(fā)現(xiàn)和負載均衡莉御;
- Docker為容器的運行環(huán)境
- kubelet負責(zé)維護容器的生命周期,同時也負責(zé)Volume(CVI)和網(wǎng)絡(luò)(CNI)的管理俗冻,一般運行在所有的節(jié)點
- Fluentd主要做日志收集礁叔、存儲與查詢,可使用其它的組件代替迄薄。
- 可選的kube-dns負責(zé)為整個集群提供DNS服務(wù)
K8S計算節(jié)點
最后
這篇文章琅关,我們簡單的介紹下K8S的歷史與架構(gòu),能對K8S心中有個大概讥蔽,下面一篇我們詳細的梳理K8S的各個概念涣易。