溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

kubernetes架構(gòu)介紹

發(fā)布時間:2020-06-11 16:48:56 來源:億速云 閱讀:180 作者:元一 欄目:云計算

kubernetes簡介

kubernetes,簡稱K8s,是用8代替8個字符“ubernete”而成的縮寫。是一個開源的,用于管理云平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單并且高效(powerful),Kubernetes提供了應用部署,規(guī)劃,更新,維護的一種機制。

kubernetes架構(gòu)介紹

Kubelet是Kubernetes中最主要的控制器,它是Pod和Node API的主要實現(xiàn)者,Kubelet負責驅(qū)動容器執(zhí)行層。在Kubernetes中,應用容器彼此是隔離的,并且與運行其的主機也是隔離的,這是對應用進行獨立解耦管理的關(guān)鍵點。

Controller Manager:負責管理集群的各種資源,保證資源處于預期的狀態(tài)。它由多種Controller組成,包括Replication Controller、Endpoints Controller.
Namespace Controller、Serviceaccounts Controller等等。
Etcd:負責保存k8s集群的配置信息和各種資源的狀態(tài)信息。當數(shù)據(jù)發(fā)生變化時,etcd會快速的通知k8s相關(guān)組件。第三方組件,它有可替換方案。Consul、 zookeeper
Pod: k8s集群的最小組成單位。一個Pod內(nèi),可以運行一個或多個容器。大多數(shù)情況下,一個Pod內(nèi)只有一個Container容器。
Flanner:是k8s集群網(wǎng)路方案,可以保證Pod的跨主機通信。第三方解決方案,也有替換方案。

查看應用在哪個節(jié)點
[root@master ~]# kubectl get pod --all-namespaces

查看應用在哪個節(jié)點的詳細信息
[root@master ~]# kubectl get pod --all-namespaces -o wide

Kubeler:他是Node的agent(代理),當Scheduler確定某個Node上運行Pod之后,會將Pod的具體配置信息發(fā)送給該節(jié)點的Kubelet,Kubeler會根據(jù)這些信息創(chuàng)建和運行容器,并向Master報告運行狀態(tài)。
Kube-proxy:負責將訪問service的TCP/UDP數(shù)據(jù)流轉(zhuǎn)發(fā)到后端的容器。如果有多個副本,kube-proxy會實現(xiàn)負載均衡

運行一個例子:三臺都導入httpd鏡像導成docker鏡像
創(chuàng)建一個deployment資源對象。Pod控制器。
[root@master ~]# kubectl run test-web --image=httpd --replicas=2
查看節(jié)點:
[root@master ~]# kubectl get deployments.
簡寫:
[root@master ~]# kubectl get deploy
kubernetes架構(gòu)介紹

[root@master ~]# kubectl get pod
kubernetes架構(gòu)介紹

哪臺dang掉重啟kuelet:
[root@master ~]# systemctl restart kubelet
[root@master ~]# kubectl get pod -o wide
kubernetes架構(gòu)介紹

刪除節(jié)點:
[root@master ~]# kubectl delete pod test-web-5b56bdff65-j6g75
還是兩個:這就是控制器的原因
kubernetes架構(gòu)介紹

分析各個組件的作用以及架構(gòu)工作流程:
1)kubectl發(fā)送部署請求到API server
2)API server 通知Controller Manager創(chuàng)建一個Deployment資源
3)Scheduler執(zhí)行調(diào)度任務(wù),將兩個副本Pod分發(fā)到node01和node02上
4)node01和node02上的kubelet在各自節(jié)點上創(chuàng)建并運行Pod。
補充:
1.應用的配置和當前的狀態(tài)信息保存在etcd中,執(zhí)行kubectl get pod時API server會從etcd中讀取這些數(shù)據(jù)。
2.flannel回味每個Pod分配一個IP。但此時沒有創(chuàng)建Service資源,目前kube-proxy還沒有參與進來。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI