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