KubeSphere 作為云原生家族 后起之秀,,開源近兩年的時(shí)間以來收獲了諸多用戶與開發(fā)者的認(rèn)可,。本文通過大白話從零詮釋 KubeSphere 的定位與價(jià)值,以及不同團(tuán)隊(duì)為什么會(huì)選擇 KubeSphere,。 對(duì)于企業(yè) KubeSphere 是什么KubeSphere 是在 Kubernetes 之上構(gòu)建的 多租戶 容器平臺(tái),,以應(yīng)用為中心,提供全棧的 IT 自動(dòng)化運(yùn)維的能力,,簡化企業(yè)的 DevOps 工作流,。使用 KubeSphere 不僅能夠幫助企業(yè)在公有云或私有化數(shù)據(jù)中心快速搭建 Kubernetes 集群,還提供了一套功能豐富的向?qū)讲僮鹘缑妗?/p> KubeSphere 能夠幫助企業(yè)快速構(gòu)建一個(gè)功能豐富的容器云平臺(tái),,讓企業(yè)在享受 Kubernetes 的彈性伸縮與敏捷部署的同時(shí),,還可以在容器平臺(tái)擁有 IaaS 平臺(tái)的存儲(chǔ)與網(wǎng)絡(luò)能力,,獲得與 IaaS 一樣穩(wěn)定的用戶體驗(yàn)。比如在 KubeSphere 2.1.1 新增了對(duì)阿里云與騰訊云塊存儲(chǔ)插件的集成,,支持為 Pod 掛載公有云的存儲(chǔ),,為有狀態(tài)應(yīng)用提供更穩(wěn)定的持久化存儲(chǔ)的能力。 在日常的運(yùn)維開發(fā)中,,我們可能需要使用與管理大量的開源工具,,頻繁地在不同工具的 GUI 和 CLI 窗口操作,每一個(gè)工具的單獨(dú)安裝,、使用與運(yùn)維都會(huì)帶來一定的學(xué)習(xí)成本,,而 KubeSphere 容器平臺(tái)能夠統(tǒng)一納管與對(duì)接這些工具,提供一致性的用戶體驗(yàn),。這意味著,,我們不需要再去多線程頻繁地在各種開源組件的控制面板窗口和命令行終端切換,極大賦能企業(yè)中的開發(fā)和運(yùn)維團(tuán)隊(duì),,提高生產(chǎn)效率,。 對(duì)于開發(fā)者 KubeSphere 是什么有很多用戶習(xí)慣把 KubeSphere 定義為 “云原生全家桶”。不難理解,,KubeSphere 就像是一個(gè)一攬子解決方案,,我們?cè)O(shè)計(jì)了一套完整的管理界面,開發(fā)與運(yùn)維在一個(gè)統(tǒng)一的平臺(tái)中,,可以非常方便地安裝與管理用戶最常用的云原生工具,,從業(yè)務(wù)視角提供了一致的用戶體驗(yàn)來降低復(fù)雜性。為了不影響底層 Kubernetes 本身的靈活性,,也為了讓用戶能夠按需安裝,,KubeSphere 所有功能組件都是可插拔的。 KubeSphere 基于 OpenPitrix 和 Helm 提供了應(yīng)用商店,,對(duì)內(nèi)可作為團(tuán)隊(duì)間共享企業(yè)內(nèi)部的中間件,、大數(shù)據(jù)、APM 和業(yè)務(wù)應(yīng)用等,,方便開發(fā)者一鍵部署應(yīng)用至 Kubernetes 中,;對(duì)外可作為根據(jù)行業(yè)特性構(gòu)建行業(yè)交付標(biāo)準(zhǔn)、交付流程和應(yīng)用生命周期管理的基礎(chǔ),,作為行業(yè)通用的應(yīng)用商店,,可根據(jù)不同需求應(yīng)對(duì)不同的業(yè)務(wù)場(chǎng)景。在 3.0 版本還將支持計(jì)量 (Metering),,方便企業(yè)對(duì)應(yīng)用與集群資源消耗的成本進(jìn)行管理,。 對(duì)于運(yùn)維 KubeSphere 是什么可觀察性是容器云平臺(tái)非常關(guān)鍵的一環(huán),,狹義上主要包含監(jiān)控,、日志和追蹤等,,廣義上還包括告警、事件,、審計(jì)等,。對(duì)于 Kubernetes 運(yùn)維人員來說,通常需要搭建和運(yùn)維一整套可觀察性的技術(shù)架構(gòu),,例如 Prometheus + Grafana + AlertManager,、EFK 等等。并且,,企業(yè)通常還需要對(duì)不同租戶能夠看到的監(jiān)控,、日志、事件,、審計(jì)等信息,,實(shí)現(xiàn)按不同租戶隔離,這些需求的引入無疑會(huì)增大企業(yè)的運(yùn)維成本與復(fù)雜性,。 KubeSphere 能夠幫助運(yùn)維人員基于 Kubernetes 快速搭建一套滿足云原生可觀察性標(biāo)準(zhǔn)的技術(shù)架構(gòu),,支持在一個(gè)統(tǒng)一的平臺(tái)納管這些組件,或?qū)油獠恳延械慕M件,。KubeSphere 能夠在一套管理界面中,,實(shí)現(xiàn)從基礎(chǔ)設(shè)施層級(jí)到容器微服務(wù)層級(jí)的多維度日志與監(jiān)控,支持逐級(jí)下鉆定位異常資源,,并且能夠滿足多租戶隔離的需求,。在 3.0 版本還將持續(xù)增強(qiáng)可觀察性,近一步豐富事件與審計(jì)的可視化管理能力,。 對(duì)于 DevOps 團(tuán)隊(duì) KubeSphere 是什么對(duì)于 DevOps 團(tuán)隊(duì)而言,,日常工作除了開發(fā)一些自動(dòng)化的工具之外,還需要運(yùn)維與管理眾多開源工具鏈,。DevOps 本身作為一個(gè)很廣義的方法論,,也可以被認(rèn)為是一種文化,很多 DevOps 團(tuán)隊(duì)在落地過程中,,也會(huì)遇到各種各樣問題,,例如 CI/CD 工具繁多、涉及人員和環(huán)境較多,、流程相對(duì)復(fù)雜等等,。 我們選擇以工具型產(chǎn)品的形式,將 DevOps 在 KubeSphere 中落地,。KubeSphere DevOps 系統(tǒng)選擇 Jenkins 作為其 CI/CD 引擎,,借助 Jenkins 豐富的插件體系和易于進(jìn)行擴(kuò)展開發(fā)的特性,幫助 DevOps 團(tuán)隊(duì)在一個(gè)統(tǒng)一的平臺(tái)中,,打通開發(fā),、測(cè)試,、構(gòu)建、部署,、監(jiān)控,、日志與通知等流程。KubeSphere 為 DevOps 團(tuán)隊(duì)打造了以容器為載體的端到端的應(yīng)用交付平臺(tái),,實(shí)現(xiàn)從項(xiàng)目管理,、應(yīng)用開發(fā)、持續(xù)集成,、單元測(cè)試,、制品構(gòu)建到應(yīng)用的生產(chǎn)交付,所有的流程都是一個(gè)完整的閉環(huán),。 基于 Kubernetes,,KubeSphere DevOps 充分利用和釋放 Kubernetes 動(dòng)態(tài)擴(kuò)展的能力。例如,,我們?cè)趦?nèi)置的 DevOps 系統(tǒng)使用了 Jenkins Kubernetes 的動(dòng)態(tài) Agent,,即默認(rèn)全部使用動(dòng)態(tài)的 Kubernetes Slave,這樣的方案相較于傳統(tǒng)虛擬機(jī)上的 Jenkins 要更加靈活敏捷,。同時(shí),,在 KubeSphere DevOps 中內(nèi)置了用戶常用的 Agent 類型,例如 Maven,、Node.js,、Go 等,并且還支持用戶自定義與擴(kuò)展的 Agent 類型,。 我們將內(nèi)置的 Jenkins 與 KubeSphere 賬戶打通,,滿足企業(yè)對(duì) CI/CD 流水線多租戶隔離與統(tǒng)一認(rèn)證的需求。另外,,KubeSphere DevOps 支持創(chuàng)建 InSCM 與 OutOfSCM 兩種形式的流水線,。這樣能很好地兼容項(xiàng)目已有的 Jenkinsfile,或使用圖形化編輯流水線,。 業(yè)務(wù)開發(fā)者即使還沒有深入了解 Docker 與 Kubernetes 的機(jī)制,,也可以借助 KubeSphere 內(nèi)置的自動(dòng)化 CD 工具,如 Binary to Image 和 Source to Image,。用戶只需要提交一個(gè)倉庫地址,,或上傳 JAR/WAR/Binary 等二進(jìn)制文件,即可快速將制品打包成 Docker 鏡像并發(fā)布到鏡像倉庫,,最終將服務(wù)自動(dòng)發(fā)布至 Kubernetes 中,,無需編寫一行 Dockerfile。并且,,在自動(dòng)構(gòu)建的過程中,,能夠生成動(dòng)態(tài)日志,,幫助開發(fā)者快速定位服務(wù)構(gòu)建與發(fā)布的問題。 對(duì)于運(yùn)營 KubeSphere 是什么在產(chǎn)品新版本發(fā)布前,,運(yùn)營團(tuán)隊(duì)通常需要引入一部分流量對(duì)新版本灰度測(cè)試?;叶劝l(fā)布可以保證整體系統(tǒng)的穩(wěn)定,,在初始灰度的時(shí)候就可以對(duì)新版本進(jìn)行測(cè)試,方便及時(shí)發(fā)現(xiàn)和調(diào)整問題,,以驗(yàn)證產(chǎn)品的可行性和收集用戶反饋,。 KubeSphere 基于 Istio 提供了藍(lán)綠部署、金絲雀發(fā)布,、流量鏡像等三種灰度策略,,無需修改應(yīng)用的服務(wù)代碼,即可實(shí)現(xiàn)灰度,、流量治理,、Tracing、流量監(jiān)控,、調(diào)用鏈等服務(wù)治理功能,,即讓產(chǎn)品的迭代能夠按照不同的灰度策略對(duì)新版本進(jìn)行線上環(huán)境的測(cè)試,并且能夠在服務(wù)拓?fù)渑c Tracing 中發(fā)現(xiàn)微服務(wù)間互相請(qǐng)求的網(wǎng)絡(luò)問題,。 如何安裝 KubeSphereKubeSphere 支持部署和運(yùn)行在包括 公有云,、私有云、虛機(jī),、物理機(jī) 和 Kubernetes 等任何基礎(chǔ)設(shè)施之上,,并支持在線與離線安裝,可參考 KubeSphere 官方文檔 進(jìn)行安裝,。
|
|