“docker、kubernetes”知識分享
來源:湖北國菱計算機(jī)科技有限公司-荊州網(wǎng)站建設(shè)-荊州軟件開發(fā)-政府網(wǎng)站建設(shè)公司
時間:2019-07-22
2019年7月12日湖北國菱公司軟件開發(fā)部成員與運(yùn)維部成員組織學(xué)習(xí)關(guān)于“docker、kubernetes原理及使用” 知識分享會,知識要點如下:
第一點:什么是容器
在同一臺機(jī)器上運(yùn)行的不同的組件需要不同的,可能存在沖突的依賴庫版本,或者其他的不同環(huán)境需求。
當(dāng)一個應(yīng)用程序僅由較少數(shù)量的大組件構(gòu)成時,完全可以接受每個組件分配專用的虛擬機(jī),以及通過給每個組件提供自己的操作系統(tǒng)實例來隔離他們的環(huán)境。但是當(dāng)這些組件開始變小且數(shù)量開始增長時,如果不想浪費(fèi)硬件資源,又想持續(xù)壓低硬件成本,那就不能給每個組件配置一個虛擬機(jī)。但是這不僅僅浪費(fèi)硬件資源,因為每個虛擬機(jī)都需要被單獨配置和管理,所以增加虛擬機(jī)的數(shù)量也就是導(dǎo)致人力資源的浪費(fèi),因為這增加系統(tǒng)管理員的工作負(fù)擔(dān)。
第二點:什么是docker
Docker是一個打包,分發(fā)和運(yùn)行應(yīng)用程序的平臺。正如我們所說,他允許將你的應(yīng)用程序和應(yīng)用程序依賴的整個環(huán)境打包在一起。這既可以是一些應(yīng)用程序需要的庫,也可以是一個被安裝的操作系統(tǒng)所有可用的文件。Docker使的傳輸這個包到一個中央倉庫成為可能,然后這個包就能被分發(fā)到任何運(yùn)行docker的機(jī)器上,在哪兒被執(zhí)行。
Docker三大組件
鏡像:docker鏡像里包含了你打包的應(yīng)用程序及其所依賴的環(huán)境。它包含應(yīng)用程序可用的文件系統(tǒng)和其他的元數(shù)據(jù),如鏡像運(yùn)行時的可執(zhí)行文件路徑,
鏡像倉庫:docker鏡像倉庫用于存放docker鏡像,以及促進(jìn)不同人和不同主機(jī)之間共享這些鏡像。當(dāng)你編譯你的鏡像時,要么可以在編譯它的電腦上運(yùn)行,要么可以先上傳到一個鏡像倉庫,然后下載到另外一臺電腦上并運(yùn)行它。某些倉庫是公開的,允許所有人從中拉取鏡像,同時也有一些是私有的,僅部分人和機(jī)器可接入。
容器:docker容器通常是一個linux容器,它基于docker鏡像被創(chuàng)建。一個運(yùn)行中的容器時一個運(yùn)行在docker主機(jī)上進(jìn)程,但他和主機(jī),以及所有運(yùn)行在主機(jī)上的其他進(jìn)程都是隔離的。這個進(jìn)程也是資源受限的,意味著他只能訪問和使用分配給他的資源(cpu,內(nèi)存等)。
第三點:什么是kubernetes
Kubernetes是一個軟件系統(tǒng),他允許你在其上很容易地部署和管理容器化的應(yīng)用。他依賴于Linux容器的特性來運(yùn)行異構(gòu)應(yīng)用,而無須知道這些應(yīng)用的內(nèi)部詳情,也不需要手動將這些應(yīng)用部署到每臺機(jī)器。因為這些應(yīng)用運(yùn)行在容器里,他們不會影響運(yùn)行在同一臺服務(wù)器上的其他應(yīng)用,當(dāng)你是為完全不同的組織機(jī)構(gòu)運(yùn)行應(yīng)用時,這是很關(guān)鍵的。對于云供應(yīng)商來說是至關(guān)重要的,因為他們在追求高硬件可用率的同搜索時也必須保障所承載應(yīng)用的完全隔離。
1、Kubernetes集群架構(gòu)
主節(jié)點:它承載著kuberentes控制和管理整個集群系統(tǒng)的控制面板。
工作節(jié)點:它們運(yùn)行用戶實際部署的應(yīng)用
2、控制面板
控制面板用于控制集群并使它工作。它包含多個組件,組件可以運(yùn)行在單個主節(jié)點或者通過副本分別部署在多個節(jié)點以確保高可用性。這些組件是:
Kubernetes API服務(wù)器,不和其他控制面板組件都要和它通信
Scheculer,它調(diào)度你的應(yīng)用(為應(yīng)用的每個可部署組件分配一個工作節(jié)點)
Controller Manager,他執(zhí)行集群級別的功能,如復(fù)制組件,持續(xù)跟蹤工作節(jié)點,處理節(jié)點失敗等
Etcd,一個可靠的分布式數(shù)據(jù)存儲,它能持久化存儲集群配置
3、工作節(jié)點
工作節(jié)點是運(yùn)行容器化應(yīng)用的機(jī)器。運(yùn)行,監(jiān)控和管理應(yīng)用服務(wù)的任務(wù)是由以下組件完成的:
Docker,rtk或其他的容器類型
Kubelet,它與API服務(wù)器通信,并管理它所在的節(jié)點的容器
Kubernetes service proxy(kube-proxy),它負(fù)責(zé)組件之間的負(fù)載均衡網(wǎng)絡(luò)流量
以上就是這次分享會的全部內(nèi)容了,希望對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,也希望能給容器小白們一些幫助。