您好,登錄后才能下訂單哦!
Master node(主節點)
Linux:一切皆是文件
K8s:一切皆是資源
Kubectl:k8s是命令行端,用來發送用戶的操做指令。
Authorization(認證授權機制)
API(編程接口)
API server:(背)是k8s集群的(前端接口)。各種客戶端工具以及k8s的其他組件可以通過它管理k8s集群的各種資源。他提供了HTTP/HTTPS RESTful API即K8S API.
Scheduler:(調度的意思)負責決定將Pod放在那個node上運行,在調度是,會充分考慮集群的拓撲結構,,當前各個節點的負載情況,以及應對高可用,性能,數據親和性和需求。
Controller Manager:負責管理集群的各種資源,保證資源處于預期的狀態,它有多種Controller(控制器)組成,包括Replication Controller。Endpoints Controller。 Namespace Controller。 Serviceaccounts Controller等等。
第三方組件:他有可替換方案。Consul,zookeeper。
Etcd:負責保存k8s集群的配置信息和各種資源的狀態信息,當數據發生變化時,etcd會快速的通知k8s相關組件。
**Pod:k8s集群的最小組成單位,一個Pod內,可以運行一個或多個容器。大多數情況下,一個Pod內只有一個Container容器。
Flannel:是k8s集群網絡方案,可以保證Pod的跨主機通信。
第三方解決方案,也有替換方案。
可以查看IP地址,以及運行在那個節點之上。
[root@master ~]# kubectl get pod --all-namespaces -o wide
Node 節點:
Kubelet:他是node的agent(代理),當scheduler確定某個Node上運行Pod之后,會將Pod的具體配置信息發送給該節點的kubelet,kubelet會根據這些信息創建和運行容器,并向Master報告運行狀態。
kube-proxy:負責將訪問service的TCP/UDP數據流轉發到后端的容器,如果有多個副本,kube-proxy會實現負載均衡。
Cadvisor:控制
//運行一個例子:
創建一個deployment資源對象,pod控制器
kubectl run test-web --image=httpd --replicas=2
查看:
[root@master ~]# kubectl get pod -o wide
[root@master ~]# kubectl get deployments.
分析各個組件的作用以及架構工作流程。
1》kubectl發送部署請求到API server
2》APIserver通知Controller Manager創建一個Deployment資源
3》Scheduler執行調度任務,將兩個副本Pod分發到node01和node02上
4》node01和node2上的kubelet在各自節點上創建并運行Pod。
補充:
1.應用的配置和當前的狀態信息保存在etcd中,執行kubectl get pod 是API server會從etcd中讀取這些數據。
2.Flannel會為每個Pod分配一個IP,但此時沒有創建Service資源,目前kube-proxy還沒有參與進來。
kubectl run test-web --image=httpd --replicas=2
kubectl get nodes
19 kubectl get deployments.
20 kubectl get pod
21 kubectl get pod -o wide
22 systemctl restart kubelet.service
23 kubectl get pod -o wide
24 kubectl delete pod test-web-5b56bdff65-fwp4l
26 kubectl get pod -o wide
2.Flannel回味每個pod分配一個ip,但此時沒有闖進啊service資源,目前kube-proxy還沒有參與進來
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。