Kubernetes主要由以下幾個(gè)核心組件組成:
1. etcd:提供數(shù)據(jù)庫(kù)服務(wù)保存了整個(gè)集群的狀態(tài)
2. kube-apiserver:提供了資源操作的唯一入口,并提供認(rèn)證、授權(quán)、訪問(wèn)控制、API注冊(cè)和發(fā)現(xiàn)等機(jī)制
3. kube-controller-manager:負(fù)責(zé)維護(hù)集群的狀態(tài),比如故障檢測(cè)、自動(dòng)擴(kuò)展、滾動(dòng)更新等
4. cloud-controller-manager:是與底層云計(jì)算服務(wù)商交互的控制器
5. kub-scheduler:負(fù)責(zé)資源的調(diào)度,按照預(yù)定的調(diào)度策略將Pod調(diào)度到相應(yīng)的機(jī)器上
6. kubelet:負(fù)責(zé)維護(hù)容器的生命周期,同時(shí)也負(fù)責(zé)Volume(CVI)和網(wǎng)絡(luò)(CNI)的管理;
7. kube-proxy:負(fù)責(zé)為Service提供內(nèi)部的服務(wù)發(fā)現(xiàn)和負(fù)載均衡,并維護(hù)網(wǎng)絡(luò)規(guī)則
8. container-runtime:是負(fù)責(zé)管理運(yùn)行容器的軟件,比如docker
除了核心組件,還有一些推薦的Add-ons:
1. kube-dns負(fù)責(zé)為整個(gè)集群提供DNS服務(wù)
2. Ingress Controller為服務(wù)提供外網(wǎng)入口
3. Heapster提供資源監(jiān)控
4. Dashboard提供GUI
5. Federation提供跨可用區(qū)的集群
6. Fluentd-elasticsearch提供集群日志采集、存儲(chǔ)與查詢(xún)