有了這篇 Kubernetes 的介紹,它的原理秒懂!

kubernetes 架構(gòu)

Api Server:主要提供資源操作的統(tǒng)一入口,這樣就屏蔽了與 Etcd 的直接交互。功能包括安全、注冊與發(fā)現(xiàn)等。 Scheduler:負責按照一定的調(diào)度規(guī)則將 Pod 調(diào)度到 Node 上。 Controller:資源控制中心,確保資源處于預(yù)期的工作狀態(tài)。
kubelet:主要工作包括管理容器的生命周期、結(jié)合 cAdvisor 進行監(jiān)控、健康檢查以及定期上報節(jié)點狀態(tài)。 kube-proxy: 主要利用 service 提供集群內(nèi)部的服務(wù)發(fā)現(xiàn)和負載均衡,同時監(jiān)聽 service/endpoints 變化并刷新負載均衡。
從創(chuàng)建 deployment 開始

首先是 kubectl 發(fā)起一個創(chuàng)建 deployment 的請求 apiserver 接收到創(chuàng)建 deployment 請求,將相關(guān)資源寫入 etcd;之后所有組件與 apiserver/etcd 的交互都是類似的 deployment controller list/watch 資源變化并發(fā)起創(chuàng)建 replicaSet 請求 replicaSet controller list/watch 資源變化并發(fā)起創(chuàng)建 pod 請求 scheduler 檢測到未綁定的 pod 資源,通過一系列匹配以及過濾選擇合適的 node 進行綁定 kubelet 發(fā)現(xiàn)自己 node 上需創(chuàng)建新 pod,負責 pod 的創(chuàng)建及后續(xù)生命周期管理 kube-proxy 負責初始化 service 相關(guān)的資源,包括服務(wù)發(fā)現(xiàn)、負載均衡等網(wǎng)絡(luò)規(guī)則
Pod

容器編排
水平擴縮容

更新/回滾

滾動更新
kubernetes 中的網(wǎng)絡(luò)
node 到 pod 之間可以通 node 的 pod 之間可以通 不同 node 之間的 pod 可以通

微服務(wù)—service
pod 的 ip 不是固定的,利用非固定 ip 進行網(wǎng)絡(luò)調(diào)用不現(xiàn)實 服務(wù)調(diào)用需要對不同 pod 進行負載均衡
app=xxx的標簽,同時為該微服務(wù)創(chuàng)建一個標簽選擇器為app=xxx的 service。kubernetes 中的服務(wù)發(fā)現(xiàn)與網(wǎng)絡(luò)調(diào)用
服務(wù)間調(diào)用

service-name.namespace-name.svc.cluster.local,指向 clusterIp 地址。所以一般使用過程中,我們直接調(diào)用 service-name 即可。服務(wù)外訪問

鏈接:https://fredal.xin/what-is-kubernetes
(版權(quán)歸原作者所有,侵刪)
評論
圖片
表情
