胡海波
摘要:市場經濟制度的不斷完善和信息化水平的不斷提高,迫使企業在經營管理當中不斷提高信息化系統能力和水平,傳統的年輕化建設模式在故障和運營維護等方面的不足日益凸顯,在這種情況下企業必須探索一個新的信息化系統建設模式。本文以現有的研究成果為基礎,針對Kubernetes基礎架構、Docker技術和容器與虛擬化對比都進行了分析,提出了一種基于“Kubernetes+Docker”技術的開源容器平臺設計方案,并闡述了設計的效果及其問題,希望能夠對企業的容器云平臺建設提供一些幫助和啟示。
關鍵詞:虛擬化;Kubernetes;Docker;容器云
Abstract: The continuous improvement of the market economic system and the continuous improvement of the level of information, forcing enterprises to constantly improve the ability and level of information system in the operation and management, the traditional younger construction mode in the fault and operation and maintenance of the deficiencies are increasingly prominent, in this case, enterprises must explore a new information system construction mode. Based on the existing research results, this paper analyzes the Kubernetes infrastructure, Docker technology and the comparison between container and virtualization, proposes an open source container platform design scheme based on "Kubernetes+Docker" technology, and expounds the design effects and problems. Hope to provide some help and inspiration for enterprise container cloud platform construction.
Keywords: virtualization; Kubernetes; Docker. Container cloud
0 引言:
信息技術的不斷發展進步,對企業的信息化業務系統建設和改進提出了更高的標準和要求,由于企業在經營管理當中會產生大量的數據信息,對數據信息的管理使用等都會對企業的信息系統產生更高的要求,在這種情況下,企業不得不強化系統的日常運維和升級,但是運營升級的過程中也會出現污染率增多等現象。在這種情況下,企業如何搭建一個更加穩定的信息化系統新技術架構平臺,解決運營維護和升級過程中所產生的各種問題,就成為企業在信息化系統建設工作中需要解決的一個重要問題。來解決這一問題的過程中,基于“Kubernetes+Docker”技術的開源容器云平臺是企業信息化系統建設過程中可以學習和借鑒一種方案。
1 ?Kubernetes的內涵分析
Kubernetes是一種基于Docker技術的集群管理系統,簡稱為 K8S,Kubernetes技術與傳統的虛擬開發技術有明顯的不同,在開發過程中,只需要關注應用開發本身即可,不需要解決資源利用效率等一系列的問題,這些問題本身都是由該技術進行處理的。另外,這種技術還支持跨主機的Docker容器操作和管理,具備服務發現和彈性伸縮等一系列的重要的容器管理功能,其管理功能更加豐富,更富有管理的針對性。在管理的過程中可以實時觀察掌握運行在其上的每一個應用的實時狀態,一旦發生異常可以自動進行重啟。另外,資源調度也是 Kubernetes技術的一個亮點,對于傳統的虛擬模擬技術,Kubernetes技術在資源調度上具有智能化管理的功能,可以根據worker節點的負載情況隨時調整負載狀況,實現負載的均衡化,這對提高資源利用效率具有顯著的幫助和促進作用。當然, Kubernetes技術在應用的過程中也受CPU和內存等的限制,但是這種技術可以設定閾值,一旦達到這一標準可以進行負載彈性伸縮,從而有效的避免負載過大對系統運行的影響。所以相對于傳統的虛擬管理系統, Kubernetes技術為基礎所搭建出來的容器云平臺,具備良好的過載保護功能,每一款應用都處于良好的運行狀態。另外轉型升級相對比較簡單,因為系統運行的過程中可以保存每一個歷史容器或者鏡像,在升級的過程中只需要替換即可。
2 ?基于Kubernetes的企業級容器云平臺搭建和運行分析
2.1? 基于Kubernetes的企業級容器云平臺搭建
2.1.1? master節點組件
etcd:平臺存儲設施,在系統當中扮演數據庫的角色,主要用于平臺運行過程中的集群鍵值的存儲,從而實現集群一致性狀態的維持和觀測。
kube-apiserver:資源管理入口,也可以稱之為資源管理后臺,借助于該功能可以對平臺上的資源進行增、刪、改、查等操作,同時也是集群控制的入口,可以對每一個集群的運行狀況進行監控并加以控制。
kube-controller-manager:集群控制管控中心,是整個平臺管理的大腦,通過這一功能,實時掌握每一個master節點、worker節點的運行狀況,判斷整個容器云平臺的運行狀況,分析是否存在故障,對節點或者集群進行操作控制,包括自動重啟等。
kube-schedule:資源控制器,在平臺運行過程中負責調動和合理配置資源,以自由算法為基礎,根據算法分析的結果判斷資源使用情況并進行管理操作,從而提高的資源的利用效率,保持平臺的穩定運行。
2.1.2? worker節點組件
kubelet:容器云的管理控制模塊,在管理中實現啟動、停止等操作,與master節點通過通信協議鏈接。
kube-proxy:負載管理器,根據資源控制器的算法分析結果,調節平臺服務負載,實現負載均衡穩定的目標。
2.2? Docker和Kubernetes環境部署
Docker和Kubernetes環境部署比較復雜,但是實踐中也有比較成熟的方案,比如說阿里云鏡像倉庫方式,該方式運行比較穩定,環境搭建可以滿足大部分企業的經營發展需要,其docker-ce.repo 的配置源信息為開源,所以企業可以借鑒和使用,只需要購買和使用阿里云即可。另外,Kubernetes的傳輸協議上,目前從其它企業的建設和應用情況來看,不同組件之間多數企業都是采用TLS(傳輸層安全性協議)證書進行通信加密,通過cfssl秘鑰管理功能確保通信安全,一般情況下證書和秘鑰都存放在節點的/etc/kubernetes/pki/目錄中。
2.3? 高可用集群部署
2.3.1節點規劃
理論上Kubernetes節點規劃并沒有數量的限制,但是現有的企業在建設的過程中,集群規劃3臺master節點和的3臺worker節點就可以滿足企業經營管理的需要,并且可以根據企業的經營發展情況隨時對節點進行拓展。
2.3.2 高可用部署和擴展
企業經營發展中的業務量的增多,與之對應的worker節點的負載可能也需要增加,為了保持負載的均衡性,需要對worker節點進行橫向擴展。當然,基于Kubernetes的的容器云平臺在搭建的初期,一般都是通過的多master節點進行部署,worker 節點通過集群內部負載均衡連接到 master 節點,所以worker節點的橫向擴展并非是無限制的,需要在擴展的同時增加master節點。Nginx +Keepalived 架構可以解決的集群的高效利用問題,是一種非常邊界的管理工具,etcd可以采用集群管理模式,解決大規模的數據管理與存儲等一系列的問題。
3 ?基于Kubernetes的企業級容器云平臺效果及問題分析
3.1? 基于Kubernetes的企業級容器云平臺建設效果
基于“Kubernetes+Docker”容器技術組搭建的生產云平臺,是目前企業云平臺建設的主流方案之一,其構建的效果主要體現在以下幾個方面上。第一,有助于提高業務部署效率,與傳統的信息化平臺部署升級方式不同的是,此種容器云平臺是采用鏡像版本替換或副本更換的方式進行升級或改造,在升級的過程中各種業務不會中斷,不會影響其他工作的使用,即便是發現新版本的業務管理出現問題,也可以重新回到舊版本進行使用,解決新版本業務問題以后再回歸到新版本,對業務部署的效率會有明顯的提升。第二,故障率會明顯下降, 以Kubernetes技術為基礎的容器云平臺,是一種高可用架構設計模式,內部容器業務發生故障,可以自動尋找其他的worker節點來發布新業務,初步實現了自動化部署的目標,即便是出現內部業務故障也不會對平臺的運行造成極大的影響也不會影響業務處理的效率。第三,提高了集群監控能力,此種容器云平臺實現了多級監控,同時對多個集群能全面的運行控制,并且可以與郵件和短信等模塊對接,一旦出現故障可以及時發送故障信息,組人員可以在不影響平臺運行的情況下加快故障處理器,確保平臺的安全運行。
3.2? 基于“Kubernetes+Docker”容器云平臺面臨的問題
基于“Kubernetes+Docker”的容器平臺在建設的過程中也存在著一些需要解決的問題。首先隔離性問題,這種架構之下所建立起來的容器云平臺,是通過一個操作系統的內核和驅動完成整個平臺的運行,這種技術設計模式的優點在于可以提高平臺的運行效率,但是潛在的安全問題也應該引起人們的重視,因為通過外部安全漏洞來攻擊底層系統,從而獲取相關數據信息,將會影響上層容器服務和系統的運行安全。在建設的過程中,目前還沒有一個非常安全的隔離技術,解決外部與內部平臺數據信息的隔離保護問題,如果采用不同虛擬機部署不同容器服務的模式,雖然可以解決隔離性的問題,但是建設成本和運營維護的難度都會增加。另外,性能也是需要考慮的一個重要問題,從前面的分析中可以看出思路,建設方案對硬件的要求比較高,尤其是多任務處理能力和水平,因為同時部署在單一宿主機上,當需要支撐的容器服務業務增加的時候,可能會出現服務資源緊張的情況,導致前端應用卡頓。所以要最大程度的提高硬件能力和水平。
總之,容器云技術是企業在經營管理當中實現業務信息化管理的重要選擇,是對傳統信息化管理模式的一種升級或改造。以“Kubernetes+Docker”技術為基礎的容器云平臺建設對企業來說是一個非常重要的選擇,但是企業在建設的過程中也可以選擇其他方案,不管選擇哪一種方案都需要企業在實踐當中進行探索。
參考文獻:
[1] 張有帥,佘葭,尹雪龍.基于Kubernetes的容器云平臺研究與設計[J].電子設計工程. 2021(22)