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