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