十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章給大家分享的是有關(guān)kubernetes集群的運行流程介紹。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了托克遜免費建站歡迎大家使用!
Kubectl:k8s是命令行端,用來發(fā)送用戶的操做指令。
Authorization(認證授權(quán)機制)
API(編程接口)
API server:(背)是k8s集群的(前端接口)。各種客戶端工具以及k8s的其他組件可以通過它管理k8s集群的各種資源。他提供了HTTP/HTTPS RESTful API即K8S API.
Scheduler:(調(diào)度的意思)負責(zé)決定將Pod放在那個node上運行,在調(diào)度是,會充分考慮集群的拓撲結(jié)構(gòu),,當前各個節(jié)點的負載情況,以及應(yīng)對高可用,性能,數(shù)據(jù)親和性和需求。
Controller Manager:負責(zé)管理集群的各種資源,保證資源處于預(yù)期的狀態(tài),它有多種Controller(控制器)組成,包括Replication Controller。Endpoints Controller。 Namespace Controller。 Serviceaccounts Controller等等。
第三方組件:他有可替換方案。Consul,zookeeper。
Etcd:負責(zé)保存k8s集群的配置信息和各種資源的狀態(tài)信息,當數(shù)據(jù)發(fā)生變化時,etcd會快速的通知k8s相關(guān)組件。
**Pod:k8s集群的最小組成單位,一個Pod內(nèi),可以運行一個或多個容器。大多數(shù)情況下,一個Pod內(nèi)只有一個Container容器。
Flannel:是k8s集群網(wǎng)絡(luò)方案,可以保證Pod的跨主機通信。
第三方解決方案,也有替換方案。
可以查看IP地址,以及運行在那個節(jié)點之上。
[root@master ~]# kubectl get pod --all-namespaces -o wide
Node 節(jié)點:
Kubelet:他是node的agent(代理),當scheduler確定某個Node上運行Pod之后,會將Pod的具體配置信息發(fā)送給該節(jié)點的kubelet,kubelet會根據(jù)這些信息創(chuàng)建和運行容器,并向Master報告運行狀態(tài)。
kube-proxy:負責(zé)將訪問service的TCP/UDP數(shù)據(jù)流轉(zhuǎn)發(fā)到后端的容器,如果有多個副本,kube-proxy會實現(xiàn)負載均衡。
Cadvisor:控制
//運行一個例子:
創(chuàng)建一個deployment資源對象,pod控制器
kubectl run test-web --image=httpd --replicas=2
查看:
[root@master ~]# kubectl get pod -o wide
[root@master ~]# kubectl get deployments.
分析各個組件的作用以及架構(gòu)工作流程。
1》kubectl發(fā)送部署請求到API server
2》APIserver通知Controller Manager創(chuàng)建一個Deployment資源
3》Scheduler執(zhí)行調(diào)度任務(wù),將兩個副本Pod分發(fā)到node01和node02上
4》node01和node2上的kubelet在各自節(jié)點上創(chuàng)建并運行Pod。
補充:
1.應(yīng)用的配置和當前的狀態(tài)信息保存在etcd中,執(zhí)行kubectl get pod 是API server會從etcd中讀取這些數(shù)據(jù)。
2.Flannel會為每個Pod分配一個IP,但此時沒有創(chuàng)建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還沒有參與進來
以上就是kubernetes集群的運行流程的詳細內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊!