一、容器:
傳統(tǒng)的應(yīng)用部署方式是通過插件或腳本來安裝應(yīng)用。這樣做的缺點(diǎn)是應(yīng)用的運(yùn)行、配置、管理、所有生存周期將與當(dāng)前操作系統(tǒng)綁定,這樣做并不利于應(yīng)用的升級(jí)更新/回滾等操作,當(dāng)然也可以通過創(chuàng)建虛擬機(jī)的方式來實(shí)現(xiàn)某些功能,但是虛擬機(jī)非常重,并不利于可移植性。
新的方式是通過部署容器方式實(shí)現(xiàn),每個(gè)容器之間互相隔離,每個(gè)容器有自己的文件系統(tǒng) ,容器之間進(jìn)程不會(huì)相互影響,能區(qū)分計(jì)算資源。相對(duì)于虛擬機(jī),容器能快速部署,由于容器與底層設(shè)施、機(jī)器文件系統(tǒng)解耦的,所以它能在不同云、不同版本操作系統(tǒng)間進(jìn)行遷移。
容器占用資源少、部署快,每個(gè)應(yīng)用可以被打包成一個(gè)容器鏡像,每個(gè)應(yīng)用與容器間成一對(duì)一關(guān)系也使容器有更大優(yōu)勢(shì),使用容器可以在build或release 的階段,為應(yīng)用創(chuàng)建容器鏡像,因?yàn)槊總€(gè)應(yīng)用不需要與其余的應(yīng)用堆棧組合,也不依賴于生產(chǎn)環(huán)境基礎(chǔ)結(jié)構(gòu),這使得從研發(fā)到測(cè)試、生產(chǎn)能提供一致環(huán)境。類似地,容器比虛機(jī)輕量、更“透明”,這更便于監(jiān)控和管理。
二、Kubernetes簡(jiǎn)介
Kubernetes是Google開源的一個(gè)容器編排引擎,它支持自動(dòng)化部署、大規(guī)??缮炜s、應(yīng)用容器化管理。它旨在提供“跨主機(jī)集群的自動(dòng)部署、擴(kuò)展以及運(yùn)行應(yīng)用程序容器的平臺(tái)
在Kubernetes中,我們可以創(chuàng)建多個(gè)容器,每個(gè)容器里面運(yùn)行一個(gè)應(yīng)用實(shí)例,然后通過內(nèi)置的負(fù)載均衡策略,實(shí)現(xiàn)對(duì)這一組應(yīng)用實(shí)例的管理、發(fā)現(xiàn)、訪問,而這些細(xì)節(jié)都不需要運(yùn)維人員去進(jìn)行復(fù)雜的手工配置和處理。
三、Kubernetes的架構(gòu)圖

四、Pod
Kubernetes的基本調(diào)度單元稱為“pod”。它可以把更高級(jí)別的抽象內(nèi)容增加到容器化組件。一個(gè)pod一般包含一個(gè)或多個(gè)容器,這樣可以保證它們一直位于主機(jī)上,并且可以共享資源。Kubernetes中的每個(gè)pod都被分配一個(gè)唯一的(在集群內(nèi)的)IP地址這樣就可以允許應(yīng)用程序使用端口,而不會(huì)有沖突的風(fēng)險(xiǎn)。Pod可以定義一個(gè)卷,例如本地磁盤目錄或網(wǎng)絡(luò)磁盤,并將其暴露在pod中的一個(gè)容器之中。pod可以通過Kubernetes API手動(dòng)管理,也可以委托給控制器來管理。
總結(jié)一下:
Kubernetes就是容器管理引擎
(歡迎打賞,一分也是愛)