一文說清 KubeSphere 容器平臺的價值

kubesphere發表於2020-07-06

KubeSphere 作為雲原生家族 後起之秀,開源近兩年的時間以來收穫了諸多使用者與開發者的認可。本文通過大白話從零詮釋 KubeSphere 的定位與價值,以及不同團隊為什麼會選擇 KubeSphere。

對於企業 KubeSphere 是什麼

KubeSphere 是在 Kubernetes 之上構建的 多租戶 容器平臺,以應用為中心,提供全棧的 IT 自動化運維的能力,簡化企業的 DevOps 工作流。使用 KubeSphere 不僅能夠幫助企業在公有云或私有化資料中心快速搭建 Kubernetes 叢集,還提供了一套功能豐富的嚮導式操作介面。

KubeSphere 能夠幫助企業快速構建一個功能豐富的容器雲平臺,讓企業在享受 Kubernetes 的彈性伸縮與敏捷部署的同時,還可以在容器平臺擁有 IaaS 平臺的儲存與網路能力,獲得與 IaaS 一樣穩定的使用者體驗。比如在 KubeSphere 2.1.1 新增了對阿里雲與騰訊雲塊儲存外掛的整合,支援為 Pod 掛載公有云的儲存,為有狀態應用提供更穩定的持久化儲存的能力。

對於企業 KubeSphere 是什麼

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

統一納管工具

對於開發者 KubeSphere 是什麼

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

對於開發者 KubeSphere 是什麼

KubeSphere 基於 OpenPitrix 和 Helm 提供了應用商店,對內可作為團隊間共享企業內部的中介軟體、大資料、APM 和業務應用等,方便開發者一鍵部署應用至 Kubernetes 中;對外可作為根據行業特性構建行業交付標準、交付流程和應用生命週期管理的基礎,作為行業通用的應用商店,可根據不同需求應對不同的業務場景。在 3.0 版本還將支援計量 (Metering),方便企業對應用與叢集資源消耗的成本進行管理。

KubeSphere 應用商店

對於運維 KubeSphere 是什麼

可觀察性是容器雲平臺非常關鍵的一環,狹義上主要包含監控、日誌和追蹤等,廣義上還包括告警、事件、審計等。對於 Kubernetes 運維人員來說,通常需要搭建和運維一整套可觀察性的技術架構,例如 Prometheus + Grafana + AlertManager、EFK 等等。並且,企業通常還需要對不同租戶能夠看到的監控、日誌、事件、審計等資訊,實現按不同租戶隔離,這些需求的引入無疑會增大企業的運維成本與複雜性。

KubeSphere 能夠幫助運維人員基於 Kubernetes 快速搭建一套滿足雲原生可觀察性標準的技術架構,支援在一個統一的平臺納管這些元件,或對接外部已有的元件。KubeSphere 能夠在一套管理介面中,實現從基礎設施層級到容器微服務層級的多維度日誌與監控,支援逐級下鑽定位異常資源,並且能夠滿足多租戶隔離的需求。在 3.0 版本還將持續增強可觀察性,近一步豐富事件與審計的視覺化管理能力。

對於運維 KubeSphere 是什麼

對於 DevOps 團隊 KubeSphere 是什麼

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

對於 DevOps 團隊 KubeSphere 是什麼

我們選擇以工具型產品的形式,將 DevOps 在 KubeSphere 中落地。KubeSphere DevOps 系統選擇 Jenkins 作為其 CI/CD 引擎,藉助 Jenkins 豐富的外掛體系和易於進行擴充套件開發的特性,幫助 DevOps 團隊在一個統一的平臺中,打通開發、測試、構建、部署、監控、日誌與通知等流程。KubeSphere 為 DevOps 團隊打造了以容器為載體的端到端的應用交付平臺,實現從專案管理、應用開發、持續整合、單元測試、製品構建到應用的生產交付,所有的流程都是一個完整的閉環。

KubeSphere DevOps

基於 Kubernetes,KubeSphere DevOps 充分利用和釋放 Kubernetes 動態擴充套件的能力。例如,我們在內建的 DevOps 系統使用了 Jenkins Kubernetes 的動態 Agent,即預設全部使用動態的 Kubernetes Slave,這樣的方案相較於傳統虛擬機器上的 Jenkins 要更加靈活敏捷。同時,在 KubeSphere DevOps 中內建了使用者常用的 Agent 型別,例如 Maven、Node.js、Go 等,並且還支援使用者自定義與擴充套件的 Agent 型別。

KubeSphere DevOps

我們將內建的 Jenkins 與 KubeSphere 賬戶打通,滿足企業對 CI/CD 流水線多租戶隔離與統一認證的需求。另外,KubeSphere DevOps 支援建立 InSCM 與 OutOfSCM 兩種形式的流水線。這樣能很好地相容專案已有的 Jenkinsfile,或使用圖形化編輯流水線。

KubeSphere 流水線

業務開發者即使還沒有深入瞭解 Docker 與 Kubernetes 的機制,也可以藉助 KubeSphere 內建的自動化 CD 工具,如 Binary to Image 和 Source to Image。使用者只需要提交一個倉庫地址,或上傳 JAR/WAR/Binary 等二進位制檔案,即可快速將製品打包成 Docker 映象併發布到映象倉庫,最終將服務自動釋出至 Kubernetes 中,無需編寫一行 Dockerfile。並且,在自動構建的過程中,能夠生成動態日誌,幫助開發者快速定位服務構建與釋出的問題。

Binary/Source to Image

對於運營 KubeSphere 是什麼

在產品新版本釋出前,運營團隊通常需要引入一部分流量對新版本灰度測試。灰度釋出可以保證整體系統的穩定,在初始灰度的時候就可以對新版本進行測試,方便及時發現和調整問題,以驗證產品的可行性和收集使用者反饋。

KubeSphere 灰度釋出

KubeSphere 基於 Istio 提供了藍綠部署、金絲雀釋出、流量映象等三種灰度策略,無需修改應用的服務程式碼,即可實現灰度、流量治理、Tracing、流量監控、呼叫鏈等服務治理功能,即讓產品的迭代能夠按照不同的灰度策略對新版本進行線上環境的測試,並且能夠在服務拓撲與 Tracing 中發現微服務間互相請求的網路問題。

KubeSphere service mesh

如何安裝 KubeSphere

KubeSphere 支援部署和執行在包括 公有云、私有云、虛機、物理機 和 Kubernetes 等任何基礎設施之上,並支援線上與離線安裝,可參考 KubeSphere 官方文件 進行安裝。

本文由部落格一文多發平臺 OpenWrite 釋出!

相關文章