KubeSphere (github.com/kubesphere) 作為云原生家族 后起之秀,開源近兩年的時間以來收獲了諸多用戶與開發(fā)者的認可。本文通過大白話詮釋 KubeSphere 的定位與價值,以及不同團隊為什么會選擇 KubeSphere。
對于企業(yè) KubeSphere 是什么
KubeSphere 是在 Kubernetes 之上構建的 多租戶 容器平臺,以應用為中心,提供全棧的 IT 自動化運維的能力,簡化企業(yè)的 DevOps 工作流。使用 KubeSphere 不僅能夠幫助企業(yè)在公有云或私有化數(shù)據(jù)中心快速搭建 Kubernetes 集群,還提供了一套功能豐富的向導式操作界面。
KubeSphere 能夠幫助企業(yè)快速構建一個功能豐富的容器云平臺,讓企業(yè)在享受 Kubernetes 的彈性伸縮與敏捷部署的同時,還可以在容器平臺擁有 IaaS 平臺的存儲與網(wǎng)絡能力,獲得與 IaaS 一樣穩(wěn)定的用戶體驗。比如在 KubeSphere 2.1.1 新增了對阿里云與騰訊云塊存儲插件的集成,支持為 Pod 掛載公有云的存儲,為有狀態(tài)應用提供更穩(wěn)定的持久化存儲的能力。


多租戶平臺
在日常的運維開發(fā)中,我們可能需要使用與管理大量的開源工具,頻繁地在不同工具的 GUI 和 CLI 窗口操作,每一個工具的單獨安裝、使用與運維都會帶來一定的學習成本,而 KubeSphere 容器平臺能夠統(tǒng)一納管與對接這些工具,提供一致性的用戶體驗。這意味著,我們不需要再去多線程頻繁地在各種開源組件的控制面板窗口和命令行終端切換,極大賦能企業(yè)中的開發(fā)和運維團隊,提高生產效率。

統(tǒng)一納管云原生工具
對于開發(fā)者 KubeSphere 是什么
有很多用戶習慣把 KubeSphere 定義為 “云原生全家桶”。不難理解,KubeSphere 就像是一個一攬子解決方案,我們設計了一套完整的管理界面,開發(fā)與運維在一個統(tǒng)一的平臺中,可以非常方便地安裝與管理用戶最常用的云原生工具,從業(yè)務視角提供了一致的用戶體驗來降低復雜性。為了不影響底層 Kubernetes 本身的靈活性,也為了讓用戶能夠按需安裝,KubeSphere 所有功能組件都是可插拔的。

支持在任何平臺運行
KubeSphere 基于 OpenPitrix (openpitrix.io) 和 Helm 提供了應用商店,對內可作為團隊間共享企業(yè)內部的中間件、大數(shù)據(jù)、APM 和業(yè)務應用等,方便開發(fā)者一鍵部署應用至 Kubernetes 中;對外可作為根據(jù)行業(yè)特性構建行業(yè)交付標準、交付流程和應用生命周期管理的基礎,作為行業(yè)通用的應用商店,可根據(jù)不同需求應對不同的業(yè)務場景。在 3.0 版本還將支持計量 (Metering),方便企業(yè)對應用與集群資源消耗的成本進行管理。

KubeSphere 應用商店
對于運維 KubeSphere 是什么
可觀察性是容器云平臺非常關鍵的一環(huán),狹義上主要包含監(jiān)控、日志和追蹤等,廣義上還包括告警、事件、審計等。對于 Kubernetes 運維人員來說,通常需要搭建和運維一整套可觀察性的技術架構,例如 Prometheus + Grafana + AlertManager、EFK 等等。并且,企業(yè)通常還需要對不同租戶能夠看到的監(jiān)控、日志、事件、審計等信息,實現(xiàn)按不同租戶隔離,這些需求的引入無疑會增大企業(yè)的運維成本與復雜性。
KubeSphere 能夠幫助運維人員基于 Kubernetes 快速搭建一套滿足云原生可觀察性標準的技術架構,支持在一個統(tǒng)一的平臺納管這些組件,或對接外部已有的組件。KubeSphere 能夠在一套管理界面中,實現(xiàn)從基礎設施層級到容器微服務層級的多維度日志與監(jiān)控,支持逐級下鉆定位異常資源,并且能夠滿足多租戶隔離的需求。在 3.0 版本還將持續(xù)增強可觀察性,近一步豐富事件與審計的可視化管理能力。

豐富的可觀察性
對于 DevOps 團隊 KubeSphere 是什么
對于 DevOps 團隊而言,日常工作除了開發(fā)一些自動化的工具之外,還需要運維與管理眾多開源工具鏈。DevOps 本身作為一個很廣義的方法論,也可以被認為是一種文化,很多 DevOps 團隊在落地過程中,也會遇到各種各樣問題,例如 CI/CD 工具繁多、涉及人員和環(huán)境較多、流程相對復雜等等。

GitOps 流程
我們選擇以工具型產品的形式,將 DevOps 在 KubeSphere 中落地。KubeSphere DevOps 系統(tǒng)選擇 Jenkins 作為其 CI/CD 引擎,借助 Jenkins 豐富的插件體系和易于進行擴展開發(fā)的特性,幫助 DevOps 團隊在一個統(tǒng)一的平臺中,打通開發(fā)、測試、構建、部署、監(jiān)控、日志與通知等流程。KubeSphere 為 DevOps 團隊打造了以容器為載體的端到端的應用交付平臺,實現(xiàn)從項目管理、應用開發(fā)、持續(xù)集成、單元測試、制品構建到應用的生產交付,所有的流程都是一個完整的閉環(huán)。

KubeSphere DevOps 流水線
基于 Kubernetes,KubeSphere DevOps 充分利用和釋放 Kubernetes 動態(tài)擴展的能力。例如,我們在內置的 DevOps 系統(tǒng)使用了 Jenkins Kubernetes 的動態(tài) Agent,即默認全部使用動態(tài)的 Kubernetes Slave,這樣的方案相較于傳統(tǒng)虛擬機上的 Jenkins 要更加靈活敏捷。同時,在 KubeSphere DevOps 中內置了用戶常用的 Agent 類型,例如 Maven、Node.js、Go 等,并且還支持用戶自定義與擴展的 Agent 類型。

基于 Kubernetes 的動態(tài) Jenkins
我們將內置的 Jenkins 與 KubeSphere 賬戶打通,滿足企業(yè)對 CI/CD 流水線多租戶隔離與統(tǒng)一認證的需求。另外,KubeSphere DevOps 支持創(chuàng)建 InSCM 與 OutOfSCM 兩種形式的流水線。這樣能很好地兼容項目已有的 Jenkinsfile,或使用圖形化編輯流水線。

可視化流水線
業(yè)務開發(fā)者即使還沒有深入了解 Docker 與 Kubernetes 的機制,也可以借助 KubeSphere 內置的自動化 CD 工具,如 Binary to Image 和 Source to Image。用戶只需要提交一個倉庫地址,或上傳 JAR/WAR/Binary 等二進制文件,即可快速將制品打包成 Docker 鏡像并發(fā)布到鏡像倉庫,最終將服務自動發(fā)布至 Kubernetes 中,無需編寫一行 Dockerfile。并且,在自動構建的過程中,能夠生成動態(tài)日志,幫助開發(fā)者快速定位服務構建與發(fā)布的問題。

Binary/Source to Image
對于運營 KubeSphere 是什么
在產品新版本發(fā)布前,運營團隊通常需要引入一部分流量對新版本灰度測試。灰度發(fā)布可以保證整體系統(tǒng)的穩(wěn)定,在初始灰度的時候就可以對新版本進行測試,方便及時發(fā)現(xiàn)和調整問題,以驗證產品的可行性和收集用戶反饋。


KubeSphere 灰度發(fā)布
KubeSphere 基于 Istio 提供了藍綠部署、金絲雀發(fā)布、流量鏡像等三種灰度策略,無需修改應用的服務代碼,即可實現(xiàn)灰度、流量治理、Tracing、流量監(jiān)控、調用鏈等服務治理功能,即讓產品的迭代能夠按照不同的灰度策略對新版本進行線上環(huán)境的測試,并且能夠在服務拓撲與 Tracing 中發(fā)現(xiàn)微服務間互相請求的網(wǎng)絡問題。


KubeSphere Service Mesh 流量拓撲
如何安裝 KubeSphere
KubeSphere 支持部署和運行在包括 公有云、私有云、虛機、物理機 和 Kubernetes 等任何基礎設施之上,并支持在線與離線安裝,可 「點擊原文」參考 KubeSphere 官方文檔 (kubesphere.com.cn)進行安裝。

特別提醒:本網(wǎng)內容轉載自其他媒體,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點。其原創(chuàng)性以及文中陳述文字和內容未經(jīng)本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,并請自行核實相關內容。本站不承擔此類作品侵權行為的直接責任及連帶責任。如若本網(wǎng)有任何內容侵犯您的權益,請及時聯(lián)系我們,本站將會在24小時內處理完畢。