一、docker的問世
????????在LXC(Linux container)Linux容器虛擬技術(shù)出現(xiàn)之前,業(yè)界網(wǎng)紅是虛擬機(jī)。虛擬機(jī)技術(shù)的代表,是VMWare和OpenStack。
虛擬機(jī)是什么?
????????虛擬機(jī)其實(shí)就是 在你的操作系統(tǒng)里面,裝一個(gè)軟件,然后通過這個(gè)軟件,再模擬一臺甚至多臺“子電腦”出來。
????????在子電腦里,我們可以安裝各種系統(tǒng),比如windows、linux等,讓你擁有多臺電腦,而在這些子電腦里,可以和使用正常電腦一樣,下載qq、微信等,甚至可以同時(shí)登錄多個(gè)qq,這些都是可以的,因?yàn)樽与娔X與子電腦之間都是相互隔離的!
Docker的問世?
- 2010年,美國舊金山幾個(gè)年輕人成立“dotCloud”公司,主要提供基于PaaS的云計(jì)算技術(shù)服務(wù),其實(shí)就是在研究LXC技術(shù)。
- dotCloud公司將自己的容器技術(shù)進(jìn)行了簡化和標(biāo)準(zhǔn)化,并命名為——Docker。
- Docker技術(shù)誕生之后,由于小型公司無人關(guān)注,經(jīng)營步履維艱,于是決定開源!(開源,就是開放源代碼。也就是將原來內(nèi)部保密的程序源代碼開放給所有人,然后讓大家一起參與進(jìn)來,貢獻(xiàn)代碼和意見。)
2013年3月,dotCloud公司的創(chuàng)始人之一,Docker之父,28歲的Solomon Hykes正式?jīng)Q定,將Docker項(xiàng)目開源。 - 眾多IT工程師關(guān)注到Docker,加入社區(qū),Docker人氣爆火!
- 開源當(dāng)月,Docker 0.1 版本發(fā)布。此后的每一個(gè)月,Docker都會發(fā)布一個(gè)版本。到2014年6月9日,Docker 1.0 版本正式發(fā)布。
- Docker已經(jīng)成為行業(yè)里人氣最火爆的開源技術(shù)!dotCloud公司名字也改成了Docker Inc. 。
docker優(yōu)點(diǎn)及理解
docker爆火的原因——輕!
????????虛擬機(jī)屬于虛擬化技術(shù)。而Docker這樣的容器技術(shù),也是虛擬化技術(shù),屬于輕量級的虛擬化。
????????虛擬機(jī)雖然可以隔離出很多“子電腦”,但占用空間更大,啟動更慢,虛擬機(jī)軟件可能還要收費(fèi)(例如VMWare)。而容器技術(shù)正好沒有這些缺點(diǎn)。它不需要虛擬出整個(gè)操作系統(tǒng),只需要虛擬一個(gè)小規(guī)模的環(huán)境(類似“沙箱”)。
????????Docker啟動時(shí)間很快,幾秒鐘就能完成。而且,它對資源的利用率很高(一臺主機(jī)可以同時(shí)運(yùn)行幾千個(gè)Docker容器)。此外,它占的空間很小,虛擬機(jī)一般要幾GB到幾十GB的空間,而容器只需要MB級甚至KB級。
特性 | 虛擬機(jī) | 容器 |
---|---|---|
隔離級別 | 操作系統(tǒng)級 | 進(jìn)程級 |
隔離策略 | Hypervisor | CGroups |
系統(tǒng)資源 | 5-15% | 0-5% |
啟動時(shí)間 | 分鐘級 | 秒級 |
鏡像存儲 | GB-TB | KB-MB |
集群規(guī)模 | 上百 | 上萬 |
高可用策略 | 備份、容災(zāi)、遷移 | 彈性、負(fù)載、動態(tài) |
docker特性:
它推出兩句口號:
1.“Build、Ship and Run”(構(gòu)建、運(yùn)輸(發(fā)送)、運(yùn)行)
2.“Build Once, Run anywhere”(一次構(gòu)建,多處運(yùn)行)
????????首先,分析第一句:“Build、Ship and Run”(構(gòu)建、運(yùn)輸(發(fā)送)、運(yùn)行)
????????這個(gè)就跟某個(gè)游戲一樣,我們設(shè)計(jì)搭建好一個(gè)“房子”,在里面住了一段時(shí)間,然后又開辟了一個(gè)新土地,這時(shí)在這個(gè)新土地上又需要搭建一個(gè)房子去居住,然后又找木頭、搬石頭搭建新房子。
????????突然,有一天你開通了一個(gè)新功能,就是你有個(gè)萬能背包,你可以復(fù)制任何東西存到背包里,用的時(shí)候拿出來就行。于是,我們將蓋好的房子復(fù)制一份,制作成“鏡像”,存放在背包(docker hub),去到新的土地,拿出”鏡像“房子,擺在那邊,拎包入住。
????????再看第二句:“Build Once, Run anywhere”(一次構(gòu)建,多處運(yùn)行)
Docker技術(shù)的三大核心概念,分別是:
○ 鏡像(Image)
○ 容器(Container)
○ 倉庫(Repository)
????????在上面的例子中,那個(gè)放在包里的“鏡像”,就是Docker鏡像。而我的背包,就是Docker倉庫。我在新土地上,擺放的房子,就是一個(gè)Docker容器。
????????另外,這個(gè)Docker鏡像,是一個(gè)特殊的文件系統(tǒng)。它除了提供容器運(yùn)行時(shí)所需的程序、庫、資源、配置等文件外,還包含了一些為運(yùn)行時(shí)準(zhǔn)備的一些配置參數(shù)(例如環(huán)境變量)。鏡像不包含任何動態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會被改變。
????????也就是,房子里你居住的日常用品,不會被復(fù)制在鏡像里,只是房子是一模一樣的!
????????一個(gè)房子可以一個(gè)鏡像,那么我們也可以制作更多的鏡像,比如將 冰箱、汽車都做成鏡像!這時(shí)候,你的是寶馬汽車,他的是奧迪汽車,另一個(gè)人又做了華為汽車,要是能拿到他們的鏡像,那么我豈不是擁有了各種汽車,于是,出現(xiàn)了一個(gè)大的公共倉庫。就是docker hub,每個(gè)人將鏡像都保存在hub里,大家可以相互使用!
????????負(fù)責(zé)對倉庫里的Docker鏡像進(jìn)行管理的,是Docker Registry服務(wù)(類似倉庫管理員)。
????????Docker Registry服務(wù)對鏡像的管理是非常嚴(yán)格的。最常使用的Registry公開服務(wù),是官方的Docker Hub,這也是默認(rèn)的 Registry,并擁有大量的高質(zhì)量的官方鏡像。
????????由于容器技術(shù)日漸火爆,將Docker應(yīng)用于具體的業(yè)務(wù)實(shí)現(xiàn),同時(shí)管理特別多的容器是存在困難的——編排、管理和調(diào)度等各個(gè)方面,都不容易。于是,人們迫切需要一套管理系統(tǒng),對Docker及容器進(jìn)行更高級更靈活的管理——就是k8s。
二、Kubernetes-K8S
K8S是什么?
????????K8S,就是基于容器的集群管理平臺,它的全稱,是kubernetes。
????????Kubernetes 這個(gè)單詞來自于希臘語,含義是舵手或領(lǐng)航員。K8S是它的縮寫,用“8”字替代了“ubernete”這8個(gè)字符。
K8S的創(chuàng)造者——行業(yè)巨頭Google。
????????K8S的前身,是Google自己研究了十多年的Borg系統(tǒng)。
????????K8S是????????2014年6月由Google公司正式公布出來并宣布開源的。
????????2015年7月,Google正式加入OpenStack基金會。與此同時(shí),Kuberentes v1.0正式發(fā)布。
簡單了解K8S架構(gòu)
一個(gè)K8S系統(tǒng),通常稱為一個(gè)K8S集群(Cluster)。
這個(gè)集群主要包括兩個(gè)部分:
○ 一個(gè)Master節(jié)點(diǎn)(主節(jié)點(diǎn))
○ 一群Node節(jié)點(diǎn)(計(jì)算節(jié)點(diǎn))
Master節(jié)點(diǎn)主要還是負(fù)責(zé)管理和控制。Node節(jié)點(diǎn)是工作負(fù)載節(jié)點(diǎn),里面是具體的容器。
Master節(jié)點(diǎn)
Master節(jié)點(diǎn)包括API Server、Scheduler、Controller manager、etcd。
???????? ● API Server是整個(gè)系統(tǒng)的對外接口,供客戶端和其它組件調(diào)用,相當(dāng)于“營業(yè)廳”。
???????? ● Scheduler負(fù)責(zé)對集群內(nèi)部的資源進(jìn)行調(diào)度,相當(dāng)于“調(diào)度室”。
????????● Controller manager負(fù)責(zé)管理控制器,相當(dāng)于“大總管”。
????????● etcd是核心存儲數(shù)據(jù)庫,存儲所有數(shù)據(jù)和事件,相當(dāng)于"倉庫"。
Node節(jié)點(diǎn)
Node節(jié)點(diǎn)包括Pod、Docker、kubelet、kube-proxy、Fluentd、kube-dns(可選)。
????????● Pod是Kubernetes最基本的操作單元。一個(gè)Pod代表著集群中運(yùn)行的一個(gè)進(jìn)程,它內(nèi)部封裝了一個(gè)或多個(gè)緊密相關(guān)的容器。除了Pod之外,K8S還有一個(gè)Service的概念,一個(gè)Service可以看作一組提供相同服務(wù)的Pod的對外訪問接口。
????????● Docker,不用說了,創(chuàng)建容器的。
????????● Kubelet,主要負(fù)責(zé)監(jiān)視指派到它所在Node上的Pod,包括創(chuàng)建、修改、監(jiān)控、刪除等。
????????● Kube-proxy,主要負(fù)責(zé)為Pod對象提供代理。
????????● Fluentd,主要負(fù)責(zé)日志收集、存儲與查詢。文章來源:http://www.zghlxwxcb.cn/news/detail-843536.html
K8S架構(gòu)圖
文章來源地址http://www.zghlxwxcb.cn/news/detail-843536.html
到了這里,關(guān)于【K8S】docker和K8S(kubernetes)理解?docker是什么?K8S架構(gòu)、Master節(jié)點(diǎn) Node節(jié)點(diǎn) K8S架構(gòu)圖的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!