2021KubeSphere容器平臺(tái)白皮書_第1頁
2021KubeSphere容器平臺(tái)白皮書_第2頁
2021KubeSphere容器平臺(tái)白皮書_第3頁
2021KubeSphere容器平臺(tái)白皮書_第4頁
2021KubeSphere容器平臺(tái)白皮書_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

KubeSphere20211123目 錄產(chǎn)品描述 7產(chǎn)品理念 7產(chǎn)品功能 10提供Kubernetes平臺(tái)管理和容器調(diào)度服務(wù) 10豐富的可觀測性 提供多集群管理 12提供傳統(tǒng)應(yīng)用的平滑上云保障 13提供企業(yè)級(jí)容器平臺(tái)運(yùn)營保障 13持續(xù)集成/持續(xù)交付(CI/CD) 14微服務(wù)治理 143.7.應(yīng)用全生命周期管理 14應(yīng)用場景 15開發(fā)架構(gòu) 16開發(fā)語言及開源軟件 16產(chǎn)品架構(gòu) 18系統(tǒng)邏輯架構(gòu) 18系統(tǒng)物理架構(gòu) 19基于物理機(jī)的部署 20基于青云云平臺(tái)部署 22業(yè)務(wù)模塊架構(gòu)設(shè)計(jì) 24多租戶權(quán)限管理模塊(IAM&AM) 24基本概念詳解 24權(quán)限管理概覽&權(quán)限等級(jí)的劃分 25架構(gòu)設(shè)計(jì) 25DevOps模塊 29模塊功能特點(diǎn) 30主要組件 30架構(gòu)設(shè)計(jì) 31可觀測性模塊 31-監(jiān)控 31模塊功能特點(diǎn) 31主要組件 32架構(gòu)設(shè)計(jì) 32日志 33模塊功能特點(diǎn) 33主要組件 33架構(gòu)設(shè)計(jì) 33審計(jì) 34模塊功能特點(diǎn) 34主要組件 35架構(gòu)設(shè)計(jì) 35事件 36模塊功能特點(diǎn) 36主要組件 37架構(gòu)設(shè)計(jì) 38告警與通知 38模塊功能特點(diǎn) 38主要組件 39架構(gòu)設(shè)計(jì) 39自定義監(jiān)控 40模塊功能特點(diǎn) 40主要組件 41架構(gòu)設(shè)計(jì) 41應(yīng)用模塊 42模塊功能特點(diǎn) 42主要組件 42架構(gòu)設(shè)計(jì) 43微服務(wù)治理模塊 44模塊功能特點(diǎn) 44主要組件 44架構(gòu)設(shè)計(jì) 45多集群與邊緣計(jì)算模塊 48-多集群 48模塊功能特點(diǎn) 48主要組件 48架構(gòu)設(shè)計(jì) 49-邊緣計(jì)算 52模塊功能特點(diǎn) 52主要組件 52架構(gòu)設(shè)計(jì) 53網(wǎng)絡(luò)與存儲(chǔ)模塊 54-網(wǎng)絡(luò) 54模塊功能特點(diǎn) 54主要組件 54架構(gòu)設(shè)計(jì) 55-存儲(chǔ) 56模塊功能特點(diǎn) 56主要組件 56架構(gòu)設(shè)計(jì) 57多租戶與權(quán)限管理 58模塊功能特點(diǎn) 58基本概念介紹 59架構(gòu)設(shè)計(jì) 60產(chǎn)品描述KubeSphere是在目前主流容器調(diào)度平臺(tái)Kubernetes之上構(gòu)建的企業(yè)級(jí)分布式多CI/CD、LDAP集成等復(fù)雜業(yè)務(wù)場景,快速構(gòu)建完整容器平臺(tái)運(yùn)維生態(tài)鏈條。產(chǎn)品理念容器等相關(guān)技術(shù)作為新一代云計(jì)算基礎(chǔ)平臺(tái)的運(yùn)行環(huán)境已經(jīng)獲得了各個(gè)領(lǐng)域的認(rèn)可,而Kubernetes作為容器編排引擎已經(jīng)是市場公認(rèn)的事實(shí)標(biāo)準(zhǔn)。但縱觀整個(gè)容器平臺(tái)的大就是在這個(gè)大背景下孕育出來的產(chǎn)品,的目標(biāo)就是要屏蔽容器編排的高昂學(xué)習(xí)成本,KubeSphere特點(diǎn)的產(chǎn)品:極簡體驗(yàn),向?qū)I面向開發(fā)、測試、運(yùn)維友好的UI,向?qū)接脩趔w驗(yàn),通過KubeSphere控制臺(tái)將Kubernetes的能力以一種低學(xué)習(xí)成本的方式輸送給用戶多租戶,細(xì)粒度,資源安全隔離基于多租戶、細(xì)粒度安全架構(gòu)設(shè)計(jì),提供資源以及操作級(jí)別的權(quán)限管控,充分保障資源安全性,并支持標(biāo)準(zhǔn)AD/LDAP協(xié)議,完成集中化認(rèn)證場景。支持單點(diǎn)登錄SSO完善的網(wǎng)絡(luò)和存儲(chǔ)解決方案支持主流開源網(wǎng)絡(luò)和存儲(chǔ)方案:網(wǎng)絡(luò):支持calico、flannel,未來會(huì)根據(jù)客戶需求集成更多開源網(wǎng)絡(luò)插件存儲(chǔ):支持GlusterFS、CephRBD、local-storage、NFS,未來會(huì)根據(jù)客戶需求集成更多開源存儲(chǔ)插件除此以外,用戶還有更多的選擇:如果用戶使用了青云的云平臺(tái),無論公有云或者私有云部署,都可以使用qingcloudcsi存儲(chǔ)插件、hostnic網(wǎng)絡(luò)插件、qingcloudcloudcontroller插件來對接青云的sds塊存儲(chǔ)、sdn網(wǎng)卡直連(pod直接綁定私網(wǎng)網(wǎng)卡)以及負(fù)載均衡器如果用戶使用了青云的,可以使用qingstorcsi來對接NeonSAN如果用戶選擇將KubeSphere部署在物理機(jī)上面,可以使用基于物理交換機(jī)的qingcloud以上插件均已開源,并且在公有云平臺(tái)的KubernetesApp上穩(wěn)定運(yùn)行一年以上平滑的應(yīng)用遷移門檻KubeSphere為用戶提供最大的方便,讓用戶無需顧慮容器領(lǐng)域遷移成本,將傳統(tǒng)應(yīng)用可以最大化的遷移到容器平臺(tái)上,實(shí)現(xiàn)應(yīng)用的平滑遷移,具體支持如下兩大類binarytoimagejarwarbinarysourcetoimage如果用戶之前是編譯好的jar包或者war包又或者是cCGolang等語言編譯后的二進(jìn)制binary文件,都可以通過KubeSphere界面提供的binarytoimage功能,一sourcetoimage功能,將代碼以容器的形式部署到容器平臺(tái)上面。多維的應(yīng)用生命周期管理KubeSphere提供了多租戶的應(yīng)用商店,每個(gè)租戶下的用戶,都可以上傳、審批、發(fā)布和管理自己的應(yīng)用,上傳完應(yīng)用模板后,只需在應(yīng)用商店中點(diǎn)擊部署,就可以一鍵部署應(yīng)用,非常方便,同時(shí)應(yīng)用商店提供了版本控制機(jī)制,用戶可以對同一個(gè)應(yīng)用上傳不同的版本,實(shí)現(xiàn)應(yīng)用版本的平滑升級(jí)。統(tǒng)一門戶,納管多集群無基礎(chǔ)設(shè)施依賴,無Kubernetes依賴,支持跨物理機(jī)、虛擬機(jī)、云平臺(tái)部署,可以納管不同版本、不同廠商的Kubernetes集群多場景、整體化解決方案提供DevOps,微服務(wù)治理,應(yīng)用管理等多場景支持,提供應(yīng)用開發(fā)、管理,CI/CD(持續(xù)集成/持續(xù)交付),服務(wù)治理,發(fā)布上線,流量管控等一系列服務(wù)易于集成第三方系統(tǒng)(監(jiān)控、日志等)內(nèi)置鏡像倉庫、應(yīng)用倉庫,監(jiān)控、日志模塊,用戶也可集成企業(yè)內(nèi)已有的監(jiān)控、日志等系統(tǒng),實(shí)現(xiàn)集中化管理產(chǎn)品功能提供Kubernetes平臺(tái)管理和容器調(diào)度服務(wù)工作負(fù)載管理:對Kubernetes中的多種workload提供向?qū)焦芾斫缑妫―eploymentsDaemonSetsStatefulSetsJobsCronJobsServerless,并提供HorizonalAutoscaler,pod自動(dòng)擴(kuò)容/縮容)支持。鏡像管理:鏡像倉庫管理,鏡像復(fù)制,權(quán)限管理,垃圾回收,鏡像安全掃描。內(nèi)置的鏡像倉庫支持高可用。監(jiān)控和告警:可使用內(nèi)置監(jiān)控告警模塊,也可對接企業(yè)自有監(jiān)控告警系統(tǒng),提供對主機(jī)、容器以及應(yīng)用服務(wù)多維度監(jiān)控,并提供模板化告警定制服務(wù)。內(nèi)置監(jiān)控服務(wù)支持高可用。日志管理:可使用內(nèi)置的日志模塊,提供管理類、操作類、審計(jì)類日志,可收集容器、應(yīng)用以及主機(jī)日志,支持高可用,也可對接企業(yè)自有的日志系統(tǒng)。NeonSAN多租戶及安全管理:提供基于角色的細(xì)粒度權(quán)限多租戶管理,平臺(tái)服務(wù)間進(jìn)行加密通信,提供操作審計(jì)日志,可對宿主機(jī)以及容器鏡像進(jìn)行安全掃描并發(fā)現(xiàn)漏洞。應(yīng)用配置及秘鑰:提供自定義應(yīng)用配置組,集中管理,有配置文件歷史查詢功能;etcd豐富的可觀測性生監(jiān)控領(lǐng)域事實(shí)上的標(biāo)準(zhǔn)Prometheus,支持集群租戶、節(jié)點(diǎn)、項(xiàng)目、工作負(fù)載、pod以及容器多維度監(jiān)控全覆蓋并支持逐級(jí)細(xì)化,同時(shí)提供豐富的監(jiān)控指標(biāo)、簡潔美觀的UI展現(xiàn),提供即時(shí)值、趨勢、排行等多種展現(xiàn)方式。等通知方式。豐富的日志管理:基于租戶的多集群統(tǒng)一日志管理中心,多租戶多集群模式、日志隔離可控。提供多集群管理KubeSphere提供了對K8s多集群的統(tǒng)一管理,具體包含如下功能kuberneteskuberneteskuberneteskubernetesapiserverkubernetesk8s提供傳統(tǒng)應(yīng)用的平滑上云保障KubeSphere對于已有的應(yīng)用,如果日志寫到標(biāo)準(zhǔn)輸出,可以直接被平臺(tái)獲取到,如果是寫到本地的日志文件,通過在平臺(tái)上指定日志文件的目錄,也可以被平臺(tái)獲取到。所有平臺(tái)獲取到的日志,用戶可以在日志搜索界面通過關(guān)鍵字、項(xiàng)目、應(yīng)用名等方式搜索到。javajarwarbinarytoimagejarwar提供企業(yè)級(jí)容器平臺(tái)運(yùn)營保障KubeSphere提供了如下企業(yè)級(jí)功能CPU計(jì)費(fèi),包括每個(gè)租戶下的已使用的資源費(fèi)用,賬戶的剩余費(fèi)用,每月和每日等周期性消費(fèi)的費(fèi)用,財(cái)務(wù)報(bào)表等。大屏,以管理者的視角,宏觀展示容器平臺(tái)的運(yùn)營情況,資源消耗情況,容器運(yùn)行數(shù)量,應(yīng)用運(yùn)行情況,平臺(tái)本身的健康狀況。審計(jì),提供用戶的操作記錄,平臺(tái)訪問記錄,api持續(xù)集成/持續(xù)交付(CI/CD)CI/CD流水線,提供從倉庫(svn/gitCI/CD代碼安全靜態(tài)掃描S2I&B2I:自動(dòng)基于模板從代碼構(gòu)建容器鏡像,并完成推送,部署等工作微服務(wù)治理KubeSphere內(nèi)置istio,同時(shí)提供可視化的微服務(wù)治理功能。基于原生,對Kubernetesistio中的微服務(wù)治理,熔斷,灰度發(fā)布,限流,智能路由等功能提供向?qū)焦芾斫缑?。部署在青云平臺(tái)之上,可以使用插件對接青云的負(fù)載均衡器,并提供基于物理交換機(jī)的負(fù)載均衡器插件。php、python、ruby、golang、還是javaKubeSphere應(yīng)用全生命周期管理KubeSphere集成開源的OpenPitrix(https://openpitrix.io)務(wù)為用戶提供應(yīng)用全生命周期管理功能邊緣節(jié)點(diǎn)納管支持KubeEdge云端組件安裝部署支持KubeEdge邊緣節(jié)點(diǎn)添加支持邊緣節(jié)點(diǎn)網(wǎng)絡(luò)配置自動(dòng)化加入和退出支持邊緣節(jié)點(diǎn)日志和監(jiān)控?cái)?shù)據(jù)采集應(yīng)用場景幫助用戶實(shí)現(xiàn)快速迭代,統(tǒng)一交付,同時(shí)可以靈活定制、編排流水線,并有細(xì)粒度的審計(jì)功能基于微服務(wù)化框架的CI/CD模塊,原生支持Kubernetes平臺(tái),內(nèi)建主流語言可框架模板,降低編譯-測試-部署的復(fù)雜度,同時(shí)允許自定義Pipeline微服務(wù)治理基于微服務(wù)治理模塊,可以為開發(fā)、測試和運(yùn)維人員提供更強(qiáng)大的DevOpsKubernetes的服務(wù)進(jìn)行更細(xì)力度的拆分,并完成加密、權(quán)限管控等功能,可以實(shí)現(xiàn)端到端的全程可視化監(jiān)控等諸多功能多集群運(yùn)維管理平臺(tái)針對在多地、多云上有多個(gè)K8s集群的大型金融企業(yè)、電商、物流等行業(yè)客戶,KubeSphere提供solo和federation兩種模式的多集群統(tǒng)一管理,支持通過OpenPitrix進(jìn)行多云環(huán)境下的應(yīng)用統(tǒng)一管理,輕松為您實(shí)現(xiàn)運(yùn)維一體化應(yīng)用分發(fā)運(yùn)營平臺(tái)針對有多家軟件提供商及分支子機(jī)構(gòu)需要計(jì)量計(jì)費(fèi)的大型企業(yè),KubeSphere可以提供集應(yīng)用管理和運(yùn)營為一體的統(tǒng)一管理平臺(tái)OpenPitrix,支持多云平臺(tái)、多應(yīng)用類型、多打包規(guī)范、高度擴(kuò)展和可插拔、應(yīng)用全生命周期管理和商業(yè)運(yùn)營大數(shù)據(jù)及人工智能針對有大量計(jì)算任務(wù)的互聯(lián)網(wǎng),金融等企業(yè),KubeSphere通過與獵戶座合作可提供支持容器跨主機(jī)使用虛擬化GPU資源,相比于其他外商方案性價(jià)比更高、GPU資源劃分更為靈活的AI方案云邊協(xié)同針對需要充分利用邊緣節(jié)點(diǎn)計(jì)算能力的客戶,KubeSphere為客戶提供基于KubeEdge的邊緣節(jié)點(diǎn)納管能力,完美支持ARM與x86架構(gòu),將云原生的技 術(shù)應(yīng)用到邊緣計(jì)算,實(shí)現(xiàn)云邊協(xié)同開發(fā)架構(gòu)5.1. 開發(fā)語言及開源軟件KubeSphereKubernetesIstioPrometheusDevOps涉及的開發(fā)語言和開源軟件如下:分類名稱說明開發(fā)語言Go后端功能React前端功能Mobx前端功能Scss前端功能Koa.js前端功能shell平臺(tái)部署Ansible平臺(tái)部署開源組件Kubernetes容器調(diào)度、管理Istio服務(wù)網(wǎng)格能力Prometheus監(jiān)控組件etcd分布式鍵值存儲(chǔ)中間件openldapLdap服務(wù)Minio對象存儲(chǔ)服務(wù)Mysql數(shù)據(jù)庫Redis鍵值存儲(chǔ)服務(wù)Elasticsearch日志存儲(chǔ)及檢索Fluentdbit日志收集可選開源組件Harbor開源組件的安裝模板GitLab產(chǎn)品架構(gòu)系統(tǒng)邏輯架構(gòu)KubeSphere對底層計(jì)算平臺(tái)無綁定、無依賴,可以使用物理機(jī)、虛擬機(jī)、云平臺(tái),只需保證網(wǎng)絡(luò)連通性且支持容器運(yùn)行環(huán)境,如Docker,以將KubeSphere部署在QingCloud云平臺(tái)舉例,通過以下幾層來構(gòu)建:資源虛擬化通過云平臺(tái)管理底層計(jì)算資源,包括主機(jī)、存儲(chǔ)、網(wǎng)絡(luò)Kubernetes通過KubeSphereKubernetes完成對容器的編排、調(diào)度,此處所管理的KubernetesKubernetesKubernetes所需的網(wǎng)絡(luò)和存儲(chǔ)服務(wù)應(yīng)用服務(wù)平臺(tái)KubeSphere使用的整體狀況應(yīng)用開發(fā)者:應(yīng)用管理為請用開發(fā)者提供了應(yīng)用的全生命周期管理開發(fā)、測試、運(yùn)維人員:CI/CD、微服務(wù)治理、配置管理、監(jiān)控、日志、告警等DevOps系統(tǒng)物理架構(gòu)KubeSphere容器平臺(tái)基于松耦合的產(chǎn)品設(shè)計(jì)理念,在各個(gè)層面上可以通過不同的部署架構(gòu)組合交付容器能力,不會(huì)給用戶帶來平臺(tái)綁定風(fēng)險(xiǎn)。基于物理機(jī)的部署基于物理環(huán)境部署,KubeSphere平臺(tái)有多種角色的節(jié)點(diǎn)構(gòu)成,如下圖:控制節(jié)點(diǎn)(master):其上提供了Kubernetes所需的控制面板組件,提供了資源調(diào)度、控制等能力,為達(dá)到高可用,一般建議為三個(gè)節(jié)點(diǎn)podetcdKubernetesetcdKubeSpherePodKubernetes,PoddockerPodKubernetes集群中監(jiān)控/日志/告警QingCloud存儲(chǔ)節(jié)點(diǎn)PodNeonSanGlusterFS,KubeSphere產(chǎn)品服務(wù)合同中SDNQingCloudKubernetesF5BIGIPKubernetesKubeSphere,但我們開源的方案更經(jīng)濟(jì),更h3cs680,后續(xù)會(huì)支持更多的交換機(jī)設(shè)備?;谇嘣圃破脚_(tái)部署代理節(jié)點(diǎn):如KubeSphere部署在基礎(chǔ)網(wǎng)絡(luò),需預(yù)先創(chuàng)建一個(gè)域名代理節(jié)點(diǎn),保障KubeSphere能夠訪問到青云云平臺(tái)的API服務(wù)控制節(jié)點(diǎn)(master)Kubernetes所需的控制面板組件,提供了資源調(diào)度、控制等能力,為達(dá)到高可用,一般建議為三個(gè)節(jié)點(diǎn)podetcdKubernetesetcdKubeSpherePodKubernetes,PoddockerPodKubernetes集群中監(jiān)控/日志/告警QingCloud業(yè)務(wù)模塊架構(gòu)設(shè)計(jì)KubeSphere多租戶權(quán)限管理模塊(IAM&AM)KubeSphere的多租戶系統(tǒng)分三個(gè)層級(jí),即集群、企業(yè)空間和項(xiàng)目。KubeSphere中的項(xiàng)目等同于Kubernetes的命名空間。在KubeSphere中企業(yè)空間是最小的租戶單元,企業(yè)空間提供了跨集 群跨目(即Kubernetes中的命名空間)共享資源的能力。企業(yè)空間中的成員可以在授權(quán)集群中創(chuàng)建項(xiàng)目,并通過邀請授權(quán)的方式參與項(xiàng) 目協(xié)同。用戶是KubeSphere的帳戶實(shí)例,可以被設(shè)置為平臺(tái)層面的管理員參與集群的管理,也可以被添加到企業(yè)空間中參與項(xiàng)目協(xié)同。1. 多級(jí)的權(quán)限控制和資源配額限制是KubeSphere權(quán)限管理概覽&權(quán)限等級(jí)的劃分KubeSphere中的權(quán)限控制分為平臺(tái)、企業(yè)空間、項(xiàng)目三個(gè)層級(jí),通過角色來控制用戶在不同層級(jí)的資源訪問權(quán)限。工程的管理等。不論是什么產(chǎn)品,權(quán)限管理體系都不可或缺,現(xiàn)有的權(quán)限管理模型有ACL,RBAC,ABAC這幾類,針對不同的使用場景,IAM這一塊的設(shè)計(jì)也有很大的不同。但是我們可以盡可能的去抽象一個(gè)足夠輕量的IAM模塊,方便再各類產(chǎn)品中快速的接入,減少重復(fù)的工作。以往,IAM往往和業(yè)務(wù)代碼耦合非常大,但Kubernetes在這一方面做的非常好,值得借鑒。KubernetesRBAC權(quán)限管理模型來做API的權(quán)限控制,簡單點(diǎn)說抽象出來角(組(組)API基于RBAC的權(quán)限控制,再結(jié)合httpverbs和API的語意去聲明權(quán)限規(guī)則。整個(gè)鑒權(quán)認(rèn)證+用戶管理體系,對業(yè)務(wù)代碼沒有侵入性,只需要API的設(shè)計(jì)需要符合RESTful語意規(guī)范。認(rèn)證模塊Header用戶的認(rèn)證方式和IAMserverks-account中我們通jwtCaddy的認(rèn)證模塊中我們就可以通過配置ks-account401。鑒權(quán)模塊認(rèn)證通過后,需要請求進(jìn)行鑒權(quán),不通過則返回403。在ks中,根據(jù)API可以抽象出一系列的權(quán)限規(guī)則例如:GET/apis/account.KubeSphere.io/users通過RESTful語意,我們可以將請求的意圖拆解為Verb:list,APIGroup:account.KubeSphere.io,Resource:usersAPI。通過聚合用戶的權(quán)限規(guī)則列表,對用戶的權(quán)限進(jìn)行準(zhǔn)入評估。ks-accountk8sinformermysqletcd我們可以很方便的橫向拓展,而不讓數(shù)據(jù)讀寫成為一個(gè)瓶頸。代理模塊借助Caddy的ProxyPlugin,我們可以很方便的對api進(jìn)行統(tǒng)一的規(guī)范、代理。IAMserver在整個(gè)體系中,IAMserver相對獨(dú)立,也是不可或缺的部分。其中最基礎(chǔ)的模塊包括用戶、用戶組的管理、配合ks-apiserver完成鑒權(quán)的權(quán)限管理模塊、配完成認(rèn)證的憑證簽發(fā)模塊。API,API用戶管理IDLfunctiongrpc權(quán)限管理做到靈活可替換,不論是借助Kubernetes、還是自己實(shí)現(xiàn)權(quán)限規(guī)則的存儲(chǔ)和校驗(yàn),隨著接入模塊的增多,權(quán)限管理模塊要保有一定的靈活性。在KubeSphere中我們選擇了多重組合的方式對權(quán)限進(jìn)行校驗(yàn),首先是一些和用戶直接關(guān)聯(lián)的API可以開放鑒權(quán),再次是針對集群、企業(yè)空間、項(xiàng)目多層級(jí)的權(quán)限校驗(yàn)。借助Kubernetes的RBAC存儲(chǔ)用戶權(quán)限規(guī)則數(shù)據(jù),用戶并不直接和資源進(jìn)行關(guān)聯(lián),資源只和角色進(jìn)行關(guān)聯(lián),所以在企業(yè)空間、項(xiàng)目創(chuàng)建之后需要做角色的初始化,ks-apiserver、ks-account存在代碼耦合。憑證簽發(fā)基于token的簽發(fā)和認(rèn)證。DevOpsevOpevopmnt和Oprtns的組合詞是?v”IT???DevOps(軟件?程三者的交集傳統(tǒng)的軟件組織將開發(fā)、IT?分離的部?,在這種環(huán)境下如何采?新的開發(fā)?法(例如敏捷軟件開發(fā)是??作?IT?QA?的跨部?的??現(xiàn)在卻需要極其緊密的多部??DevOps需要頻繁交付的企業(yè)可能更需要對DevOps有?個(gè)?致的了解。Flickr發(fā)展了??的DevOps能?,使之能夠?撐業(yè)務(wù)部?“每天部署10次”的要求──如果?個(gè)組織要?產(chǎn)?向多種???也被稱為持續(xù)部署,并且經(jīng)常與精益創(chuàng)業(yè)?法聯(lián)系起來。DevOps?CI/CD/持續(xù)部署),在以往,CI/CD?量???趨復(fù)雜的情況下,微服務(wù)架構(gòu)也逐漸流?CI/CD?。Docker的出現(xiàn)改變了這?現(xiàn)狀,DockerDevOps?標(biāo)是?致的。DevOps項(xiàng)?是KubeSphere項(xiàng)?基礎(chǔ)上的?個(gè)應(yīng)?項(xiàng)?,為?戶提供從開發(fā)到部署的?整套AutoDevOps流程。?戶只要提供Git地址,就能為其?動(dòng)?成?個(gè)以該源代碼為基礎(chǔ)的部署好的測試環(huán)境甚?是?產(chǎn)環(huán)境。KubeSphere??KubernetesSCMGitlab,在倉庫中?DevOps,?動(dòng)添加Webhook,?動(dòng)復(fù)制項(xiàng)?CI/CD。內(nèi)建主流語?和主流框架的模板,降低編譯-測試-部署的復(fù)雜性,?部分主流語?和框架需配置項(xiàng)較少。對于?級(jí)?戶或者?主流框架,可通過?Pipeline?式構(gòu)建。項(xiàng)?架構(gòu)微服務(wù)化,?鍵部署到主流容器服務(wù)中。該項(xiàng)?最終能夠在各個(gè)?商的云平臺(tái)和私有云快速部署,提?企業(yè)的開發(fā)效率。支持sourcetoimage/binarytoimage,快速交付容器鏡像兼容Jenkinsfilein&outofSCM(SourceCodeManagement)兩種模式獨(dú)立DevOps工程,提供訪問可控、安全隔離的CI/CD操作空間可視化流水線編輯工具,降低CI/CD學(xué)習(xí)成本代碼靜態(tài)掃描這些組件都是以微服務(wù)的形式提供。APIServer??PipelineKubeSphere交互的接?。GitLab(可選),提供版本控制和軟件源代碼托管服務(wù)。Harbor(可選)MonogoDBAPIServerSonarQubeJenkinsCI/CD系統(tǒng)中有一些功能以Jenkins插件的方式提供,有一些功能在服務(wù)中開發(fā)集成??捎^測性模塊- 基于主流監(jiān)控框架Prometheus支持高可用/DevOpsPod->容器提供高級(jí)監(jiān)控信息的管理配置界面可集成第三方監(jiān)控服務(wù),支持監(jiān)控?cái)?shù)據(jù)導(dǎo)出PrometheusOperator:管理和運(yùn)維Prometheus集群Prometheus工作負(fù)載:后端PrometheusNodeExporter:采集集群節(jié)點(diǎn)監(jiān)控?cái)?shù)據(jù)cAdvisor/Kubelet:kube-state-metrics:監(jiān)聽KubernetesAPIserver,并采集監(jiān)控?cái)?shù)據(jù)日志托管容器集群服務(wù)提供多租戶日志管理,在日志查詢系統(tǒng)中,不同的租戶只能看到屬于自己的日志信息:支持中文日志檢索,支持日志導(dǎo)出;支持多級(jí)別的日志查詢(項(xiàng)目/工作負(fù)載/容器組/容器以及關(guān)鍵字)、靈活方便的日志收配置選項(xiàng)等;支持將日志輸出到多種平臺(tái),如Elasticsearch、Kafka、Fluentd;對于將日志以文件形式保存在掛盤上的應(yīng)用,支持開啟落盤日志收集功能。FluentBit,ElasticsearchFluentBitOperator,logsidecar-injector,Console日志系統(tǒng)各組件調(diào)用關(guān)系如下:FluentBitOperator管理FluentBit生命周期及配置變更:FluentBit負(fù)責(zé)收集個(gè)節(jié)點(diǎn)輸出到stdout的容器日志并將其轉(zhuǎn)發(fā)到Kafka,Fluentd或Elasticsearch可通過配置logsidecar-injector內(nèi)沒有輸出到stdout,而是輸出到內(nèi)掛載盤的日志,轉(zhuǎn)發(fā)到stdout供FluentBit收集Console通過查詢APIServer,進(jìn)而查詢Elasticsearch得到要查詢的日志返回給前端展現(xiàn)。審計(jì)KubeSphereK8sksk8sapiserver:審計(jì)事件的生產(chǎn)者。ksapiserver:ks審計(jì)事件的生產(chǎn)者。kubeauditingoperator:管理CRDKubeAuditRule和KubeAuditWebhook,并管理與CRD相關(guān)聯(lián)的資源。kubeauditingwebhook:接收審計(jì)事件與審計(jì)規(guī)則進(jìn)行匹配,存儲(chǔ)滿足條件的審計(jì)事件和產(chǎn)生告警。FluentBit:從ruleengine的標(biāo)準(zhǔn)輸出收集審計(jì)信息并寫入es。alertmanager:接收審計(jì)告警。kubeauditingmanager:提供審計(jì)控制、審計(jì)規(guī)則管理接口,以及審計(jì)信息查詢接口。kubeauditingoperatorCRDKubeAuditWebhook,當(dāng)創(chuàng)建KubeAuditWebhookauditingoperatorkubeauditingserviceAuditSink。k8sksk8sKubeauditingwebhook包含auditwebhook和ruleengine兩個(gè)模塊,auditwebhookchannelRuleengine從channelfluentbitalertmanager。CRDKubeAuditRulekubeauditingwebhookKubeauditingmanagerauditingwebhook配置接口,及審計(jì)信息查詢接口。Event作為K8sEvent記錄。Event存儲(chǔ)在EtcdEtcd默認(rèn)只存儲(chǔ)最近1h的Event。整個(gè)流程包含以下組件:Event管理:fluentbit擴(kuò)展fluentbit服務(wù)配置,以收集events到es等ks-apiserver增加event查詢api(consoleUI設(shè)計(jì)涉及)其他eventrouter程序日志與events分離Event告警:eventalerter:這是一個(gè)事件告警程序,用于監(jiān)聽獲取events,將之與rules進(jìn)行匹配以產(chǎn)生alerts默認(rèn)rules整理和定義RuleManager實(shí)現(xiàn)rules自動(dòng)重載將alerts發(fā)送到alertmanagerks-apiserver增加自定義rules規(guī)則的CRUDapi(consoleUI設(shè)計(jì)涉及)基于alertmanagerapi提供與告警相關(guān)的接口(consoleUI設(shè)計(jì)涉及)eventrouter機(jī)理eventrouter通過K8s的EventInformer監(jiān)聽Event的創(chuàng)建和更新等,并適配實(shí)現(xiàn)ResourceEventHandlerFuncs將Event導(dǎo)出到指定的sink。注:ResyncPeriod規(guī)定每隔多久,控制器遍歷緩存中所有對象,并調(diào)用OnUpdate。如果控制器可能錯(cuò)過對象更新事件,或者先前的事件處理回調(diào)可能執(zhí)行失敗,則此配置參數(shù)很重要。labels用于標(biāo)識(shí)告警的相同實(shí)例;annotations是labels所標(biāo)識(shí)告警的最新實(shí)例的消息;查詢方法可參考AlertManager官方提供的httpapi以及源碼中的相關(guān)api??勺远x包含多個(gè)告警規(guī)則的告警策略,并且可以指定通知規(guī)則和重復(fù)告警的規(guī)則;CPU可自定義某監(jiān)控指標(biāo)的檢測周期長度、持續(xù)周期次數(shù)、告警等級(jí)等;可自定義發(fā)送通知時(shí)間段及通知列表,目前支持郵件通知;支持設(shè)置重復(fù)告警周期、最大重復(fù)次數(shù)并和告警級(jí)別掛鉤。主要組件如下:PrometheusOperatorAlertmanagerNotificationManagerPrometheusOperator通過監(jiān)控CRD管理Prometheus實(shí)例的生命周期與配置變更;Prometheus(包括NodeExporterkube-state-metricskubeletcadvisor,K8sApiServerK8sschedulerEtcd等)抓取監(jiān)控?cái)?shù)據(jù);Prometheus會(huì)根據(jù)內(nèi)部配置的AlertRule實(shí)時(shí)判斷接收到的監(jiān)控?cái)?shù)據(jù)是否需要告警,如果需要?jiǎng)t會(huì)發(fā)送告警信息到Alertmanager;Kube-Events監(jiān)控K8s事件,可以將符合告警條件的K8s事件也發(fā)送告警至Alertmanager;Kube-Auditing將監(jiān)控K8s/平臺(tái)審計(jì)事件,并可將符合告警條件的審計(jì)事件發(fā)送告警至Alertmanager;Alertmanager會(huì)統(tǒng)一將可發(fā)送通知的告警發(fā)送到NotificationManager,再由NotificationManager根據(jù)配置發(fā)送通知到Emal,Slack或Wechat。Kubernetes監(jiān)控的事實(shí)標(biāo)準(zhǔn)工具Prometheus監(jiān)控引擎組件:PrometheusPrometheusOperator發(fā)布時(shí):namespace、job有具體值會(huì)自動(dòng)被占位符替換。其他敏感信息需要上傳者屏蔽(可以通過yaml編輯的形式)。統(tǒng)一格式<placeholder60cluster-admin可以發(fā)布到kubesphere-monitoring-system和當(dāng)前namespaceworkspace-manager可以發(fā)布到每個(gè)wk下的ns(復(fù)制相同的內(nèi)容,在每個(gè)ns下都創(chuàng)建相同內(nèi)容的ConfigMap)namespace-user只能發(fā)布到當(dāng)前namespace校驗(yàn)項(xiàng):namespace應(yīng)用模塊KubeSphere應(yīng)用商店讓ISV、開發(fā)者和用戶能夠在一站式服務(wù)中只需點(diǎn)擊幾下就可以上傳、測試、安裝和發(fā)布應(yīng)用。KubeSphere在OpenPitrix的基礎(chǔ)上,為用戶提供了一個(gè)基于Helm的應(yīng)用商店,用于應(yīng)用生命周期管理。OpenPitrix是一個(gè)開源的Web平臺(tái),用于打包、部署和管理不同類型的應(yīng)用。OpenPitrix是一款開源的多云應(yīng)用程序管理平臺(tái),用來在多云環(huán)境下打包、部署和管Serverless應(yīng)用等,其中云平臺(tái)包括AWS、Azure、Kubernetes、QingCloud、OpenStack、VMWare等,而且是一個(gè)高度微服務(wù)治理模塊基于Istio微服務(wù)框架提供可視化的微服務(wù)治理功能,將Kubernetes的服務(wù)進(jìn)行更ProxyJaeger生成主要組件如下:IstioJaegerKialiIstioPilotxdsenvoyPodIptablesAPI,支持配置文件動(dòng)態(tài)更新??刂破矫尕?fù)責(zé)配置下發(fā),數(shù)據(jù)平面根據(jù)路由轉(zhuǎn)發(fā)數(shù)據(jù):基于Kubernetes及Istio,實(shí)現(xiàn)微服務(wù)治理功能:DestionationRulesmaxConnectionshttpVirtualServicevirtualService流量監(jiān)測:envoyPrometheusIstioDestinationRulesSpringCloudRPCSpringCloudProvider、ConsumerEurekaServerApiGateway(Zuul),分別單獨(dú)部署在K8sPodsHPARPC載均衡訪問服務(wù)者,當(dāng)流量達(dá)到一定閾值后提供熔斷的功能(SpringCloudHystrix)ZuulURL多集群與邊緣計(jì)算模塊- 多集群KubeSphere多集群可以管理多個(gè)KubeSphere集群資源,包括不限于查看集群資源,監(jiān)控狀態(tài),并具有向多個(gè)集群部署應(yīng)用的能力。主要組件:KubeFed介紹:Kubernetes集群的做法非常普遍。由于每個(gè)Kubernetes集群都是一個(gè)相對獨(dú)立的單元,上游社區(qū)正(KubernetesClusterFederation,簡稱KubeFed)可能是其中一種可行的方法。開發(fā)KubeSphere旨在解決多集群和多云管理(包括上述使用場景)的難題,為用戶提供統(tǒng)一的控制平面,將應(yīng)用程序及其副本分發(fā)到位于公有云和本地環(huán)境的多個(gè)集群。KubeSphere還擁有跨多個(gè)集群的豐富可觀測性,包括集中監(jiān)控、日志系統(tǒng)、事件和審計(jì)日志等。KubeSphere(MultiClusterControlPlane),由控制平Host,如上圖。被管理的集群稱之為MemberCluster??刂破矫婵梢赃\(yùn)行在其被管理的集群上。多集群控制平面ks-mc-console:多集群管理界面,通過管理界面來完成對集群的管理,資源的創(chuàng)建部署。ks-mc-controller:多集群控制器,負(fù)責(zé)將用戶創(chuàng)建的多集群資源對象同步到JoinedCluster上。例如,用戶創(chuàng)建了一個(gè)多集群workspace(指這個(gè)workspace可以使用到多個(gè)JoinedCluster資源),ks-mc-controller會(huì)將workspace同步創(chuàng)建到JoinedCluster上。ks-mc-apiserver:負(fù)責(zé)接受ks-mc-console請求,并將請求轉(zhuǎn)義成具體的集群API,發(fā)到對應(yīng)的集群上,接受JoinedCluster的Response,將Response聚合后返回給ks-mc-console。ks-mc-account:多集群的用戶組件,負(fù)責(zé)多集群下用戶的認(rèn)證,權(quán)限校驗(yàn)。上述組件可以在現(xiàn)有組件之上增加功能,無需新增組件。Use-Case:低延遲,高可用DNSKubefedDNSUse-Case:開發(fā)-測試-生產(chǎn)production)集群,HostCluster與三個(gè)集群通信,通過多集群管理三個(gè)集群,完成從開發(fā)到測試,再到生產(chǎn)環(huán)境的流水線。依賴多集群之間的權(quán)限管理需要打通,需要對權(quán)限管理進(jìn)行重構(gòu)。將用戶抽象成CRD形式,利用kubefed將用戶傳播到membercluster上,做到用戶在多個(gè)集群之間都是權(quán)限一致。- 邊緣計(jì)算1.支持KubeEdge云端組件的安裝部署2.支持KubeEdge邊緣節(jié)點(diǎn)的添加支持邊緣節(jié)點(diǎn)的日志和監(jiān)控?cái)?shù)據(jù)采集支持邊緣節(jié)點(diǎn)網(wǎng)絡(luò)配置自動(dòng)化的加入和退出邊緣節(jié)點(diǎn)在加入集群時(shí),支持自動(dòng)添加污點(diǎn)支持通過添加nodeAffinity禁止云端工作負(fù)載(如DaemonSet)調(diào)度到邊緣節(jié)點(diǎn)7.支持調(diào)度工作負(fù)載至邊緣節(jié)點(diǎn)主要組件如下:KubeEdge網(wǎng)絡(luò)與存儲(chǔ)模塊- IPPoolPodIPIPPool需要在啟用calico插件的模式下啟動(dòng);支持LB插件;支持網(wǎng)絡(luò)策略可視化管理。Lb插件:lb插件是基于/kubernetes/cloud-provider實(shí)現(xiàn),LB插件要做的就是實(shí)現(xiàn)這包對應(yīng)的接口,調(diào)用都是用這個(gè)包里的程序?qū)崿F(xiàn)。網(wǎng)絡(luò)策略:創(chuàng)建企業(yè)空間時(shí),可以勾選是否添加"默認(rèn)的企業(yè)空間網(wǎng)絡(luò)策略";企業(yè)空間管理員可以刪除"默認(rèn)的企業(yè)空間網(wǎng)絡(luò)策略";“企業(yè)空間網(wǎng)絡(luò)策略"會(huì)自動(dòng)為每個(gè)項(xiàng)目生成"項(xiàng)目網(wǎng)絡(luò)策略”,自動(dòng)生成的策略只能插卡,不能修改和刪除;項(xiàng)目管理員可以為自己有權(quán)限的項(xiàng)目配置"項(xiàng)目網(wǎng)絡(luò)策略"。oeNSNSNSNS在集群內(nèi)部,可以使用ks-apiserver.kubesphere-system.svc.cluster.local來訪問kubesphere-systemnamespace下ks-apiserver這個(gè)service)domaincluster.localDNSZONE在k8s/kubernetes-sigs/external-dns可以向DNSk8sserviceingresspushNodeLocalDNS每個(gè)nodeDNSDNSDNSCoreDNSCoreDNS集群內(nèi)部的DNS服務(wù)器,提供集群內(nèi)部域名解析服務(wù),對于不存在與集群內(nèi)部的域名請求,遞歸到上游DNS;UpstreamDNS上游DNSDNSdomainCoreDNS- 存儲(chǔ)卷快照是企業(yè)級(jí)存儲(chǔ)系統(tǒng)的必備功能。在容器領(lǐng)域,VolumeSnapshot在Kubernetesv1.17從alpha升級(jí)到beta,因此KubeSphere3.0增加存儲(chǔ)卷快照功能。在Kubernetes中,VolumeSnapshot的設(shè)計(jì)借鑒了PersistentVolume,相關(guān)概念有一個(gè)對應(yīng)關(guān)系:VolumeSnapshotClass對應(yīng)StorageClass,VolumeSnapshot對PersistentVolumeClaim,VolumeSnapshotContentPersistentVolume;在設(shè)計(jì)上,KubeSphere3.0之前,存儲(chǔ)類型指的是StorageClass。然而KubeSphere3.0StorageClassVolumeSnapshotClass;具體的,StorageClassVolumeSnapshotClass;不支持快照StorageClass。為了更好用戶體驗(yàn)和精簡的前后端交互,前端只操作StorageClass。在創(chuàng)建、刪除、更新存儲(chǔ)類型時(shí),ks-controller會(huì)負(fù)責(zé)VolumeSnapshotClass的相關(guān)處理。具體的描述如下:創(chuàng)建存儲(chǔ)類型前端CreateStorageClass。ks-controller,判斷CSICSI均不支持快照)是否支持快照。若支持快照,ks-controller創(chuàng)建同名VolumeSnapshotClass(無參數(shù)),并給StorageClass標(biāo)注“storageclass.kubesphere.io/support-snapshot:”為“true”。若不支持快照,ks-controller給StorageClass刪除存儲(chǔ)類型前端DeleteStorageClass。ks-controllerVolumeSnapshotClass;若有,刪除同名。VolumeSnapshot。更新存儲(chǔ)類型前端UpdateStorageClassks-controllerCSIVolumeSnapshotClass,并給StorageClass標(biāo)注“storageclass.kubesphere.io/support-snapshot:”為“true”VolumeSnapshotClassStorageClass標(biāo)注“storageclass.kubesphere.io/support-snapshot:”為“false”Roadmap(1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論