Kubernetes 架构(下)【转】
上一節我們討論了 Kubernetes 架構 Master 上運行的服務,本節討論 Node 節點。
Node 是 Pod 運行的地方,Kubernetes 支持 Docker、rkt 等容器 Runtime。 Node上運行的 Kubernetes 組件有 kubelet、kube-proxy 和 Pod 網絡(例如 flannel)。
kubelet
kubelet 是 Node 的 agent,當 Scheduler 確定在某個 Node 上運行 Pod 后,會將 Pod 的具體配置信息(image、volume 等)發送給該節點的 kubelet,kubelet 根據這些信息創建和運行容器,并向 Master 報告運行狀態。
kube-proxy
service 在邏輯上代表了后端的多個 Pod,外界通過 service 訪問 Pod。service 接收到的請求是如何轉發到 Pod 的呢?這就是 kube-proxy 要完成的工作。
每個 Node 都會運行 kube-proxy 服務,它負責將訪問 service 的 TCP/UPD 數據流轉發到后端的容器。如果有多個副本,kube-proxy 會實現負載均衡。
Pod 網絡
Pod 要能夠相互通信,Kubernetes Cluster 必須部署 Pod 網絡,flannel 是其中一個可選方案。
完整的架構圖
結合實驗環境,我們得到了如下的架構圖:
你可能會問:為什么 k8s-master 上也有 kubelet 和 kube-proxy 呢?
這是因為 Master 上也可以運行應用,即 Master 同時也是一個 Node。
幾乎所有的 Kubernetes 組件本身也運行在 Pod 里,執行如下命令:
kubectl get pod --all-namespaces -o wide
Kubernetes 的系統組件都被放到?kube-system?namespace 中。這里有一個?kube-dns?組件,它為 Cluster 提供 DNS 服務,我們后面會討論。kube-dns是在執行?kubeadm init?時(第 ⑤ 步)作為附加組件安裝的。
kubelet 是唯一沒有以容器形式運行的 Kubernetes 組件,它在 Ubuntu 中通過 Systemd 運行。
為了幫助大家更好地理解 Kubernetes 架構,下節我們將部署一個應用來展示各個組件是如何協作的。
轉載于:https://www.cnblogs.com/twobrother/p/11081458.html
總結
以上是生活随笔為你收集整理的Kubernetes 架构(下)【转】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “前池秋始半”下一句是什么
- 下一篇: 找个05年左右的恐怖电影,女主是个奶油金