架構
kubectl:k8s是命令列端,用來傳送客戶端的操作指令
api server:是k8s集群的前端介面,各種客戶端工具以及k8s的其他元件可以通過他管理k8s集群的各種資源。他提供了http/https/ restful api,即k8s api
scheduler(排程):負責決定將pod放在那個node上執行。在排程時,會充分考慮集群的拓撲結構,當前各個節點的負載情況,以及應對高可用,效能,資料親和性需求
controller manager(管理資源):負責管理集群的各種資源,保證資源處於預期的狀態,它有多種controller組成,包括replication controller,endpoints controller,namespace controller,service accounts controller等等
pod:k8s集群的最小組成單位。乙個pod內,可以執行乙個或多個容器。大多數情況下,乙個pod內只有乙個container容器
flannel:是k8s集群網路方案,可以保證pod的跨主機通訊。第三方解決方案,也有替換方案。
檢視pod資訊
kubectl get pod --all-namespaces
檢視pod詳細資訊
kubectl get pod --all-namespaces -o wide
kubelet:他是node的agent(**),當scheduler確定某個node上執行pod之後,會將pod的具體配置資訊傳送給該節點的kubelet,kubelet會根據這些資訊建立和執行容器,並向master報告執行狀態。
kube-proxy:負責將訪問service的tcp/udp資料流**到後端的容器,如果有多個副本,kube-proxy會實現負載均衡。
例子:建立乙個deployment資源物件。pod控制器
刪除kubectl delete pod test-web-5b56bdff65-fwp4l
分析各個元件的作用以及架構工作流程
1.kubectl傳送部署請求到api server
2.api server通知controller manager船艦乙個deployment資源
3.scheduler執行排程任務,將兩個副本pod分發到node01和node02上
4.node01和node02上的kubelet在各自節點上建立並執行pod
補充1.應用的配置和當前的狀態資訊儲存在etcd中,執行kubectl get pod時api server會從etcd中讀取這些資料
2.flannel回味每個pod分配乙個ip,但此時沒有闖進啊service資源,目前kube-proxy還沒有參與進來
檢視kubectl get deployments.
kubectl get pod
kubectl get pod -o wide
K8s生產架構
kubernetes的生產架構,如圖所示 k8s平台 日誌管理 使用elasticsearch filebeat 和 kibana技術棧 監控告警管理 使用cadvisor prometheus和grafana技術棧 微服務架構 使用service mesh服務網格中的istio方案 devops ...
k8s架構學習
master 節點 master 是 kubernetes cluster 的大腦,執行著如下 daemon 服務 kube apiserver kube scheduler kube controller manager etcd 和 pod 網路 例如 flannel api server ku...
k8s架構和元件
架構 主從分布式架構,master node 服務分組,小集群,多集群 服務分組,大集群,單集群 元件 kubernetes master 集群控制節點,負責整個集群的管理和控制,基本上kubernetes所有的控制命令都是發給它,它來負責具體的執行過程,我們後面所有執行的命令基本都是在master...