K8S基本概念

2021-10-06 11:31:02 字數 1489 閱讀 2460

kubernetes master / node : 如果大家對諸如hadoop這樣的分布式集群有所了解,就會發現k8s的設計理念和其他分布式架構的非常類似的:master節點負責接收使用者的指令、分配任務以及記錄各個node的情況;而node節點負責接收master的指令,啟動相應的pod(k8s的最小執行單元,是乙個container的集合)。

安裝k8s時會指定master和node節點,部署好之後,我們通過k8s的api與master節點進行互動。master節點收到了我們的指令(比如新啟動乙個pod),會排程node節點去完成它們。當然,其中底層的排程策略、具體的實現細節對於我們使用者來說都是隱蔽的,不需要我們去了解。

container : 容器。由於k8s是容器管理平台,因此如果你使用k8s管理docker的容器的話,那麼這裡的container就是docker的container。作為啟動乙個元件的最小單元(比如我可以用乙個container啟動乙個mysql ,另乙個container啟動乙個tomcat。而mysql和tomcat的各種配置檔案都在它們自己的container中,因此不會相互干擾,也不會汙染linux主機的配置環境。)。

pod : 一組container的集合,是k8s中最小的執行單元。由於乙個服務往往是要基於許許多多的元件才能完成的,因此乙個pod就是「能夠完整執行這個服務」的最小個體,也是k8s將其指定為原子單元的初衷(比如我要啟動乙個簡單的**服務,至少需要乙個tomcat、乙個mysql以及我自己編寫的**業務流程程式。因此在k8s中,我就會啟動乙個pod,這個pod中包含三個container,每個container包含了它們相應的元件。)。每個pod中的所有container是共享ip位址和檔案系統的,這點要特別注意。

原意是「豌豆莢」,我覺得這個比喻很形象。每個容器就像豌豆一樣,而pod就像豌豆莢一樣把它們包住,使之成為乙個整體。

replicaset : 用於指定每個pod的備份數量。由於k8s採用的是分布式架構,為了保證高可靠性,萬一哪台node節點突然宕機了,也必須要保證我的**服務能夠正常執行;因此,每個pod都會被複製成3份(預設設定3份),執行在不同的node節點上。replicaset就是用來管理pod備份數量,保證高可靠性的元件。

service : 用於各種資訊的抽象(這是個抽象概念,理解起來比較難,回頭我再總結乙個k8s的工作流程,大家就能更清楚地理解啦)。

label : 每個pod的唯一識別符號,資訊會存在etcd資料庫中。service就是通過這個識別各個pod誰是誰的。就像工號一樣。

kubelet : 每個node節點都有乙個,用於啟動、管理和監測各個node中pod。k8s會將所有的容器資訊記錄在etcd資料庫中,kubelet就是不斷地去資料庫中檢視這些pod的資訊,保證其與node中實際執行的情況相同。我的理解,kubelet就類似於每個工地裡工頭兒的角色,負責具體派活兒和監督。

kube-proxy : 在k8s中,每個node都用自己的乙個ip位址。而kube-proxy就是負責每個node與其他node或matser節點通訊的樞紐。資訊的流入和流出、請求的**都是通過kube-proxy進行操作的。

k8s基本概念

前期對springboot springcloud的config eruka fein hystrix以及docker都有了一定的了解,後邊想重點學習一下k8s,個人認為前邊這些最後再加上k8s才是微服務最好的實踐方案,這也是學習k8s的最初原因。對我來講學習乙個新框架最重要的要知道這個東西,怎麼來...

k8s基本概念

最近在看 kubernates權威指南 寫的確實好,能讓你對各種概念有個詳細的了解。1 節點的概念 k8s集群有兩類節點 master節點 與 node節點 非master master節點 是集群控制節點,是集群的大腦。其上面會有四個關鍵的程序 node節點 可以理解為集群工作負載節點,docke...

k8s基本概念

開源,用於管理雲平台中多個主機上的容器化的應用,讓部署容器化的應用簡單高效,其提供了應用部署 規劃 更新 維護。k8s集群由master節點和node worker 節點組成。1.master節點 master節點指的是集群控制節點,管理和控制整個集群,基本上k8s的所有控制命令都發給它,它負責具體...