如果你對(duì)容器化感興趣并且關(guān)注過,可能會(huì)聽過許多關(guān)于Kubernetes的事情。隨著云開發(fā)的重點(diǎn)轉(zhuǎn)移到容器,Kubernetes等這些容器相關(guān)技術(shù)已經(jīng)變得大受歡迎。什么是Kubernetes?為什么這項(xiàng)技術(shù)很重要呢?
企業(yè)遇到的問題與挑戰(zhàn)
目前許多企業(yè)及其客戶正在尋求更靈活、更快交付、并且在私有云,混合云,甚至多云環(huán)境下都可以運(yùn)行的軟件及系統(tǒng)。
然而,許多企業(yè)面臨的是不同的軟件環(huán)境具有不同的限制和復(fù)雜性。例如,如果開發(fā)團(tuán)隊(duì)在編寫軟件時(shí)考慮了某個(gè)操作系統(tǒng),在其他操作系統(tǒng)運(yùn)行時(shí)可能會(huì)遇到各種復(fù)雜的問題,對(duì)于底層硬件環(huán)境或云環(huán)境也是如此。
這些問題會(huì)在組織內(nèi)部不停的造成內(nèi)部沖突與消耗。開發(fā)團(tuán)隊(duì)可能會(huì)開發(fā)出因許多因素導(dǎo)致非常難以運(yùn)維的軟件。例如,軟件遷移到新環(huán)境導(dǎo)致性能問題,甚至因一個(gè)小改動(dòng)導(dǎo)致嚴(yán)重的問題。
容器:解決問題的方案
容器是解決方案之一。容器將軟件運(yùn)行時(shí)的所需依賴及運(yùn)行環(huán)境全部打包在一起。這種特性將應(yīng)用與底層基礎(chǔ)架構(gòu)分開。無論在哪里運(yùn)行容器化應(yīng)用程序,都將以相同的方式在相同的環(huán)境運(yùn)行。這些特性聽起來與虛擬機(jī)很像,但是有本質(zhì)性的區(qū)別。
圖1
如圖1所示,使用虛擬化技術(shù)作為應(yīng)用沙盒,就必須要由Hypervisor來負(fù)責(zé)創(chuàng)建虛擬機(jī),這個(gè)虛擬機(jī)時(shí)真實(shí)存在的,并且它里面運(yùn)行一個(gè)完整的GuestOS才能執(zhí)行用戶的應(yīng)用進(jìn)程。這就不可避免地帶來了額外的資源消耗和占用。
而相比之下,容器化后的用戶應(yīng)用,卻依然還是一個(gè)宿主機(jī)上的普通進(jìn)程,這就意味著這些因?yàn)樘摂M化而帶來的性能損耗都是不存在的;另一個(gè)方面,使用linux namespace作為隔離手段的容器并不需要單獨(dú)的GuestOS,這就使得容器額外的資源占用幾乎可以忽略不計(jì)。
所以說,容器作為解決方案,“敏捷”和“高性能”是容器相較于虛擬機(jī)最大的優(yōu)勢,也是它能夠在PaaS這種更細(xì)粒度的資源管理平臺(tái)上大行其道的重要原因。
Kubernetes:容器的解決方案
容器聽起來像是一個(gè)完美的解決方案,但使用容器也會(huì)產(chǎn)生一些問題。大型企業(yè)可能會(huì)產(chǎn)生大量容器,如何管理和部署,對(duì)所有容器化應(yīng)用進(jìn)行編排,這是一個(gè)非常復(fù)雜的問題。
由Google與RedHat公司共同主導(dǎo)的Kubernetes項(xiàng)目可以幫助解決這些問題。Kubernetes是一個(gè)管理,自動(dòng)化和部署容器化應(yīng)用的開源解決方案。
Kubernetes脫胎于Borg系統(tǒng),而Borg系統(tǒng)一直以來都被譽(yù)為Google公司內(nèi)部最強(qiáng)大的“秘密武器”。相對(duì)于Spanner、BigTable等相對(duì)上層的項(xiàng)目,Borg要承擔(dān)的責(zé)任,是承載Google公司整個(gè)基礎(chǔ)設(shè)施的核心依賴。在Google公司已經(jīng)公開發(fā)表的基礎(chǔ)設(shè)施體系論文中,Borg項(xiàng)目當(dāng)仁不讓地地位居整個(gè)基礎(chǔ)設(shè)施技術(shù)棧的最底層。
圖2
如圖2,Borg和它的繼任者Omega位于整個(gè)技術(shù)棧的最底層。正因這樣,Borg可以說是Google最不可能開源的一個(gè)項(xiàng)目。而幸運(yùn)的是得益于Docker項(xiàng)目和容器技術(shù)的風(fēng)靡,它卻已另外一種方式與開源社區(qū)見面,這就是Kubernetes。正式這樣,Kubernetes依托著Borg的理論優(yōu)勢,在短短幾個(gè)月內(nèi)在市場中站穩(wěn)了腳跟。
Kubernetes會(huì)帶來的幾點(diǎn)好處:
節(jié)約成本:Kubernetes集群以運(yùn)維工作量少而聞名。企業(yè)團(tuán)隊(duì)不必編寫自己的容器化腳本。團(tuán)隊(duì)成員也不必在“重新發(fā)明輪子“或者放棄共享基礎(chǔ)設(shè)施的優(yōu)勢之間做出選擇。還可以通過使用容器更加有效的降低硬件成本。
更短的交付周期:Kubernetes非常適合DevOps。良好的容器管理意味著只要軟件運(yùn)行,部署幾乎總是無痛,這意味著更快部署。
IT靈活性:在現(xiàn)代企業(yè)中,軟件可以在任意數(shù)量的私有和共享基礎(chǔ)架構(gòu)上運(yùn)行。擁有容器管理解決方案意味著不必犧牲性能或進(jìn)行重大調(diào)整來移動(dòng)您的應(yīng)用程序。您可以在任何業(yè)務(wù)需要的地方運(yùn)行軟件。這使團(tuán)隊(duì)更加靈活。
Kubernetes所擅長的,是按照用戶的意愿和整個(gè)系統(tǒng)的規(guī)則,完全自動(dòng)化的處理好容器之間的各種關(guān)系。其本質(zhì),是為用戶提供一個(gè)具有普遍意義的容器編排工具。可以說,在容器云中,Kubernetes提供了一套基于容器構(gòu)建分布式系統(tǒng)的基礎(chǔ)依賴,其意義等同于Linux在操作系統(tǒng)中的地位。
-
容器
+關(guān)注
關(guān)注
0文章
495瀏覽量
22060 -
kubernetes
+關(guān)注
關(guān)注
0文章
224瀏覽量
8712
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論