九、 k8s 架構分析
為了幫助大家更好地理解 Kubernetes 架構,我們部署一個應用來演示各個組件之間是如何協作的,
執行命令:
kubectl run httpd-app --image=httpd --replicas=2
等待一段時間,應用部署完成,
root@k8s-master:~/k8s# kubectl get deploment
root@k8s-master:~/k8s# kubectl get pod -o wide
? Kubernetes 部署了 deployment httpd-app,有兩個副本 Pod,分別運行在 k8s-node1 和 k8s-node2,
? 詳細討論整個部署程序,

? ① kubectl 發送部署請求到 API Server,
? ② API Server 通知 Controller Manager 創建一個 deployment 資源,
? ③ Scheduler 執行調度任務,將兩個副本 Pod 分發到 k8s-node1 和 k8s-node2,
? ④ k8s-node1 和 k8s-node2 上的 kubectl 在各自的節點上創建并運行 Pod,
補充兩點:
- 應用的配置和當前狀態資訊保存在 etcd 中,執行
kubectl get pod時 API Server 會從 etcd 中讀取這些資料, - flannel 會為每個 Pod 都分配 IP,因為沒有創建 service,目前 kube-proxy 還沒參與進來,
Kubernetes 架構就討論到這里,從下節開始,我們將通過實踐深入學習 Kubernetes 的各種特性,作為容器編排引擎,最重要也是最基本的功能當然是運行容器化應用,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/252001.html
標籤:其他
