何謂Kubernetes以及企業如何從DevOps趨勢中獲益
2017年9月21日, by Kublr Team
什麼是容器,Kubernetes適合應用於什麼地方,成功部署需要什麼工具?
當前,容器的使用可謂如火如荼。不僅受到開發人員的喜愛,而且也倍受企業追捧。如果貴公司的IT部門正在尋找一種更快速、更簡單的應用開發方式時,那您應該考慮使用容器技術。但是行動之前,我麼存在如下問題:
a.容器是什麼?它解決了哪些問題?
b.Kubernetes在容器和叢集管理空間中的位置如何?
c.為什麼它代表了企業應用實施的挑戰?
d.在研究容器和叢集管理工具是否適合您的應用程式開發需求時,您應該記住哪些注意事項?
關於容器、容器叢集管理、Kubernetes的優缺點,以及如何從Kubernetes部署中獲益最大。我們認為每個企業都需要了解這些基本要點。
- 什麼是容器?它們解決了哪些問題?
當程式設計師測試軟體時,他們必須確保軟體從一個計算環境遷移到另一個計算環境時,能夠可靠地執行。這可能是從模擬環境遷到生產環境,也可能是從自有資料中心遷到雲上的虛擬機器。這帶來的問題是不同的環境很難完全相同,環境內的軟體有可能有差異,網路和安全配置也很大可能存在不同。
而容器通過將整體開發環境的內容打成一個軟體包的方式解決了這個問題。通過引入了一個環境一致性的層級,通過容器化把軟體平臺及其依賴項,作業系統分佈和底層基礎設施之間的差異等抽象出來。允許開發人員以相同的方式快速、可靠地部署應用,而無需考慮所部署的環境。事實上,使用容器可以讓部署人員忽略全部的基礎設施。因為容器包含了應用執行所需的所有元素——從程式碼到配置,包括軟體內的模組、獨立執行的軟體包等。因此,容器的可移植性使它成為企業考慮多雲策略的重要資本。
容器還可以幫助使用者為適應DevOps部署和推行高效、快速交付的做準備。通過容器,使用者可以更新和升級,而無需擔心反覆重新部署引起的麻煩。容器的優勢使得在現有系統中部署新應用程式和效率都超出使用者的原有預期。
容器比虛擬機器更輕巧,資源消耗也更少,因此它的使用快速普及。最新的一項調查顯示:在過去12個月裡,有94%的受訪者使用過或調研過某些容器技術。
- 哪些公司在容器方面處於領先地位?
當前,Docker成為了容器技術的代名詞。它擁有成熟的技術堆疊、強大的開源生態圈、與任何平臺的相容性,以及非常好的時間切入點(Docker是在虛擬機器的流行度下降時推出的)。Docker已經將其競爭對手——rkt、OpenVZ和LXC等遠遠地甩在了後面。Docker所承載的環境恆定不可編輯,獨立於底層設施,使它不管是在開發人員的機器上,還是在生產環境中,都能保持一致的執行效果。
- 容器管理工具如何幫助有效地管理容器?
在企業級應用開發中,需要合適的工具來有效地實現DevOps方法,並有效管理容器技術和平臺。這也是容器叢集管理或容器編排解決方案的作用所在。但隨著企業將容器的應用到生產環境中,管理和維護在不同位置的容器、以及確保跨主機的容器之間的合理通訊等方面都將出現問題。我們將這些相互關聯的容器群體被稱為“叢集”。這就引出了容器叢集管理的概念。
容器叢集管理工具提供了一個企業級框架,用於大規模容器的整合和管理,並確保使用者在使用DevOps時,具備必要的連續性。基本上,它們可以幫助使用者定義初始的容器部署,同時維護後端關鍵IT應用的效能,如可用性、可伸縮性和網路聯通性。並且將所有的這些功能都做到合理、標準化和統一的。
- 有哪些企業級容器叢集管理解決方案?
雖然容器叢集管理有多種選擇。但Kubernetes無疑時容器化之戰的勝利者,它是目前使用最廣泛的開源解決方案。基於谷歌15年的持續開發,以及引人注目的開源社群(包括Red Hat、Canonical、CoreOS和Microsoft), Kubernetes比市場上任何其他產品成熟得都快。
Kubernetes成為容器叢集管理的不二選擇,還因為它為開發人員提供了工具,讓他們可以快速有效地響應客戶需求,同時減輕在雲中執行應用的負擔。它通過去除許多部署和擴充套件容器化應用相關的手動任務來達到上述效果。這樣,在不同環境間進行切換時,軟體都能穩定可靠地執行。例如,您可以在節點叢集(跨越公共、私有或混合雲)上計劃和部署任意數量的容器,然後由Kubernetes負責按照您的意願管理這些負載。Kubernetes使容器的任務處理得到了簡化,這些任務包括部署操作(水平自動縮放、滾動更新、金絲雀部署)和管理(監控資源、應用程式健康檢查、除錯應用程式等)。
- Kubernetes仍然有很高的進入門檻。
凡事總會有"但是"。雖然,我們在之前討論將Kubernetes選擇為最佳容器管理平臺時,講了它的許多優勢。但Kubernetes依然在配置和使用上,存在一定的困難。管理Kubernetes是一個耗時的過程,而且需要操作人員有很高的技能水平,企業可能要投入很多資金才行。也許對於接觸不深的人說,Kubernetes貌似可以在數小時或數天內就跑起來。但這和將Kubernetes用於生產環境還相差很遠,生產環境存在的一些額外功能要求如安全性、高可用性、災難恢復、備份和維護等,要讓Kubernetes都一一滿足,難度就可想而知啦。這