前言
什么是容器叫倍?
容器是一個(gè)包偷卧,包含了其應(yīng)用以及所需要的所有的依賴(lài)。
容器中的應(yīng)用與主機(jī)隔離吆倦,不需要關(guān)注環(huán)境听诸。
容器和虛擬機(jī)最大的不同在于,容器不需要啟動(dòng)操作系統(tǒng)的王正周期蚕泽,故晌梨,容器的啟動(dòng)以及停止都將會(huì)非常的快。并且容器還可以相當(dāng)高興的利用宿主機(jī)的各種資源赛糟。
容器把所有的應(yīng)用的語(yǔ)言和框架都打包進(jìn)入到了容器派任,使得容器在任何環(huán)境都能部署。
左圖璧南,應(yīng)用直接部署在宿主機(jī)中掌逛,造成環(huán)境相互干擾,不利于運(yùn)維和維護(hù)司倚,右邊豆混,應(yīng)用直接打包在docker中,應(yīng)用之間互相互不干擾动知,可以任意運(yùn)行皿伺。
什么是 Kubernetes?
k8s是一個(gè)來(lái)自google的開(kāi)源項(xiàng)目,用于統(tǒng)一管理處理容器化的應(yīng)用盒粮。
k8s鸵鸥,負(fù)責(zé)在大規(guī)模的服務(wù)器環(huán)境中,部署和管理容器組,用于解決掉容器的復(fù)制妒穴,擴(kuò)展宋税,健康,啟動(dòng)讼油,負(fù)載均衡杰赛。
k8s,現(xiàn)在已經(jīng)被多家公司支持矮台,例如微軟乏屯,紅帽,藍(lán)色巨人瘦赫。
Kubernetes 的著名優(yōu)勢(shì)特色
一個(gè)平臺(tái)搞定所有
使用k8s辰晕,部署任何應(yīng)用都相當(dāng)?shù)娜菀住?/p>
只要能打包進(jìn)入容器,容器能夠運(yùn)行,那么k8s 就一定能運(yùn)行。
云環(huán)境無(wú)縫遷移
如果你有上云的需求怯邪,那么使用k8s缔莲,這間會(huì)是一件相當(dāng)簡(jiǎn)單的事情,k8s扎唾,會(huì)讓你無(wú)縫遷移云環(huán)境召川,從google的cloud到aws再到微軟的環(huán)境,任意遷移胸遇。
高效的利用資源
看下圖荧呐,左邊,是4個(gè)虛擬機(jī)纸镊,黃色和藍(lán)色部分是運(yùn)行的應(yīng)用倍阐,白色部分是未使用的內(nèi)存和處理器資源。
右邊逗威,同樣的應(yīng)用打包運(yùn)行在容器中峰搪。
Kubernetes 如果發(fā)現(xiàn)有節(jié)點(diǎn)工作不飽和,便會(huì)重新分配 pod凯旭,幫助我們節(jié)省開(kāi)銷(xiāo)概耻,高效的利用內(nèi)存、處理器等資源罐呼。
如果一個(gè)節(jié)點(diǎn)宕機(jī)了鞠柄,Kubernetes 會(huì)自動(dòng)重新創(chuàng)建之前運(yùn)行在此節(jié)點(diǎn)上的 pod,在其他節(jié)點(diǎn)上運(yùn)行嫉柴。
開(kāi)箱即用的自動(dòng)縮放能力
網(wǎng)絡(luò)厌杜、負(fù)載均衡、復(fù)制等特性计螺,對(duì)于 Kubernetes 都是開(kāi)箱即用的夯尽。
pod 是無(wú)狀態(tài)運(yùn)行的瞧壮,任何時(shí)候有 pod 宕了,立馬會(huì)有其他 pod 接替它的工作呐萌,用戶(hù)完全感覺(jué)不到馁痴。
如果用戶(hù)量突然暴增,現(xiàn)有的 pod 規(guī)模不足了肺孤,那么會(huì)自動(dòng)創(chuàng)建出一批新的 pod罗晕,以適應(yīng)當(dāng)前的需求。
反之亦然赠堵,當(dāng)負(fù)載降下來(lái)的時(shí)候小渊,Kubernetes 也會(huì)自動(dòng)縮減 pod 的數(shù)量。
使 CI/CD 更加簡(jiǎn)單
你不必精通于 Chef 和 Ansible 這類(lèi)工具茫叭,只需要對(duì) CI 服務(wù)寫(xiě)個(gè)簡(jiǎn)單的腳本然后運(yùn)行它酬屉,就會(huì)使用你的代碼創(chuàng)建一個(gè)新的 pod,并部署到 Kubernetes 集群里面揍愁。
應(yīng)用打包在容器中使其可以安全的運(yùn)行在任何地方呐萨,例如你的 PC、一個(gè)云服務(wù)器莽囤,使得測(cè)試極其簡(jiǎn)單谬擦。
可靠性
Kubernetes 如此流行的一個(gè)重要原因是:應(yīng)用會(huì)一直順利運(yùn)行,不會(huì)被 pod 或 節(jié)點(diǎn)的故障所中斷朽缎。
如果出現(xiàn)故障惨远,Kubernetes 會(huì)創(chuàng)建必要數(shù)量的應(yīng)用鏡像,并分配到健康的 pod 或節(jié)點(diǎn)中话肖,直到系統(tǒng)恢復(fù)北秽。
而且用戶(hù)不會(huì)感到任何不適。
一個(gè)容器化的基礎(chǔ)設(shè)施是有自愈能力的最筒,可以提供應(yīng)用程序的不間斷操作贺氓,即使一部分基礎(chǔ)設(shè)施出現(xiàn)故障。
總結(jié)
Kubernetes 使得應(yīng)用的啟動(dòng)是钥、遷移掠归、部署變得即簡(jiǎn)單又安全。
不必?fù)?dān)心應(yīng)用遷移后工作出現(xiàn)問(wèn)題悄泥,也不用擔(dān)心一臺(tái)服務(wù)器無(wú)法應(yīng)付突發(fā)的用戶(hù)量虏冻。
需要注意的是,你的應(yīng)用最好使用微服務(wù)架構(gòu)進(jìn)行開(kāi)發(fā)弹囚,因?yàn)槲⒎?wù)應(yīng)用比單體應(yīng)用更適合做容器化厨相。
作者:___mySoul
原文鏈接:https://blog.csdn.net/melovemingming/article/details/109127623