安暢網(wǎng)絡(luò)借助KubeSphere構(gòu)建SmartAnt云原生遷移實(shí)踐

      2020-07-09 16:26:39

      1.安暢網(wǎng)絡(luò)簡(jiǎn)介

      安暢網(wǎng)絡(luò)是中國(guó)市場(chǎng)領(lǐng)先的下一代云托管服務(wù)商(Cloud MSP),安暢以客戶需求驅(qū)動(dòng),以云計(jì)算為底座,面向企業(yè)客戶提供云原生技術(shù)服務(wù)和數(shù)字化解決方案,幫助客戶上好云、管好云和用好云(為客戶構(gòu)建下一代云基礎(chǔ)設(shè)施和技術(shù)中臺(tái)、提供智能化全托管云運(yùn)維和管理服務(wù)、開(kāi)發(fā)現(xiàn)代化云原生應(yīng)用),致力于成為 IT 新生態(tài)和產(chǎn)業(yè)互聯(lián)網(wǎng)的連接器。

      安暢網(wǎng)絡(luò)

      2.SmartAnt 遷移平臺(tái)的云原生之路

      一站式遷移平臺(tái) SmartAnt,是安暢網(wǎng)絡(luò)開(kāi)發(fā)的一款輕量級(jí)的遷移平臺(tái),能幫助用戶快速將業(yè)務(wù)遷移上云,擺脫繁瑣的遷移上云過(guò)程。

      通過(guò)可視化界面,一鍵遷移,支持主機(jī)/數(shù)據(jù)庫(kù)/對(duì)象存儲(chǔ)等遷移類型,從根本上顛覆傳統(tǒng)云遷移所帶來(lái)的困擾。

      一鍵式遷移流程,高效快捷,能讓任何人具備“云計(jì)算遷移工程師”的能力,幫助更多個(gè)人、企業(yè)用戶打通通向云端的“榮耀之路”,助力企業(yè)數(shù)字化轉(zhuǎn)型。

      3.基礎(chǔ)架構(gòu)演進(jìn)

      一路走來(lái),遷移工具從單模塊單體,到多模塊單體,再到微服務(wù)架構(gòu),業(yè)務(wù)架構(gòu)在順應(yīng)分布式的微服務(wù)技術(shù)潮流進(jìn)行演進(jìn)。

      同時(shí),我們的基礎(chǔ)設(shè)施架構(gòu)也在不斷變更,從傳統(tǒng)的 IDC 物理機(jī)房服務(wù)器,到云服務(wù)器的虛擬化,利用公有云資源提供的負(fù)載均衡器及其他云產(chǎn)品完成高可用架構(gòu),再到以 Docker 和 Kubernetes 為基礎(chǔ)的云原生架構(gòu),我們?yōu)榱隧憫?yīng)市場(chǎng)的快速需求而不斷進(jìn)行技術(shù)革新與演進(jìn)。

      4.遇到的問(wèn)題

      我們?cè)谖⒎?wù)改造過(guò)程中并不是一帆風(fēng)順的:

      如何管理 Kubernetes 聲明式的 API,

      如何對(duì)微服務(wù)進(jìn)行快速部署與監(jiān)控運(yùn)維,

      如何落地 Service Mesh(服務(wù)網(wǎng)絡(luò))等,

      如何搭建 CI/CD 系統(tǒng),都給我們帶來(lái)了不小的挑戰(zhàn)。

      在最初僅使用原生的 Docker + Kubernetes 環(huán)境時(shí),我們踩了不少坑,也走了不少?gòu)澛?,我們調(diào)研和嘗試了業(yè)界流行的各種技術(shù)方案,最終構(gòu)建了一套非常適合我們產(chǎn)品的解決方案。

      本文將詳細(xì)解讀我們?nèi)绾谓鉀Q這一系列問(wèn)題,希望我們的經(jīng)驗(yàn)總結(jié)對(duì)大家有幫助。

      5.如何搭建生產(chǎn)級(jí)別的集群

      我們直接采用了開(kāi)源的 KubeSphere 容器平臺(tái),使用 KubeSphere Installer 一鍵部署了高可用架構(gòu)的 Kubernetes 集群,配合我們?cè)诠性坪退接性频呢?fù)載均衡器來(lái)實(shí)現(xiàn)高可用架構(gòu)。

      并且,我們對(duì)私有部署的 Kubernetes 集群中 3 個(gè) master 節(jié)點(diǎn) api-server 的 6443 端口進(jìn)行監(jiān)聽(tīng),保證集群高可用。

      搭建生產(chǎn)級(jí)別的集群

      通過(guò) KubeSphere 內(nèi)置的集群狀態(tài)監(jiān)控面板,實(shí)現(xiàn)了對(duì)節(jié)點(diǎn)的資源用量進(jìn)行可視化管理。

      即使在安裝后遇到節(jié)點(diǎn)資源不足,也能非常方便地通過(guò) Installer 按需新增 Node 節(jié)點(diǎn),免去了 Kubernetes 基礎(chǔ)設(shè)施部署的復(fù)雜性。

      集群狀態(tài)監(jiān)控面板

      存儲(chǔ)利用云盤(pán)自建 Ceph 集群,KubeSphere 提供豐富的存儲(chǔ)插件,快速方便地繼承到 Kubernetes 的 StorageClass中,為應(yīng)用提供持久化的數(shù)據(jù)存儲(chǔ),并且在界面也可以非常方便地對(duì) Ceph RBD 存儲(chǔ)卷進(jìn)行可視化管理。

      Ceph RBD 存儲(chǔ)卷

      6.如何對(duì)不同環(huán)境的權(quán)限進(jìn)行管控

      由于 Kubesphere 對(duì)原生 Kubernetes 的 RBAC 基于企業(yè)空間層(Workspace)的權(quán)限管控設(shè)計(jì),以及細(xì)粒度的基于用戶與角色的權(quán)限分配。

      我們直接通過(guò) KubeSphere 不同企業(yè)空間下的項(xiàng)目(Namespace)來(lái)進(jìn)行開(kāi)發(fā)、測(cè)試與生產(chǎn)環(huán)境的隔離。

      如下圖,其中 Dev 環(huán)境為業(yè)務(wù)開(kāi)發(fā)環(huán)境,開(kāi)發(fā)人員授權(quán)可以登錄容器終端查看容器日志等,test 環(huán)境為測(cè)試人員開(kāi)放權(quán)限,方便測(cè)試人員進(jìn)行業(yè)務(wù)功能的測(cè)試,prod 環(huán)境為線上正式環(huán)境,只有集群管理員可以登錄維護(hù)。

      對(duì)不同環(huán)境的權(quán)限進(jìn)行管控

      7.服務(wù)怎么治理

      針對(duì)南北流量,利用開(kāi)源 Kong 提供 API 網(wǎng)關(guān),基礎(chǔ)設(shè)施下沉到 Kubernetes 內(nèi),提供流量控制、黑白名單、認(rèn)證鑒權(quán)等功能。

      在微服務(wù)間的東西流量管理上,我們使用了 KubeSphere 內(nèi)置的 Istio 來(lái)實(shí)現(xiàn)微服務(wù)治理,幫助我們對(duì) SmartAnt 平臺(tái)滿足了負(fù)載均衡、流量監(jiān)控、鏈路追蹤、熔斷降級(jí)等非常典型的應(yīng)用場(chǎng)景。

      下圖為 SmartAnt 中將服務(wù)器主機(jī)遷移微服務(wù)的服務(wù)治理圖,KubeSphere 集成了 Istio 多樣化功能,使我們能夠非常高效地運(yùn)行分布式微服務(wù)架構(gòu),為微服務(wù)提供保護(hù)、連接和監(jiān)控微服務(wù)的統(tǒng)一方法,通過(guò)豐富的路由規(guī)則、重試、故障轉(zhuǎn)移和故障注入,可以對(duì)流量行為進(jìn)行細(xì)粒度控制。

      在我們的 SmartAnt 平臺(tái)的實(shí)際應(yīng)用中,遷移偶爾存在網(wǎng)絡(luò)異常情況,該步驟可以設(shè)置重試,從而避免單詞調(diào)用異常導(dǎo)致整個(gè)遷移過(guò)程的失敗。

      對(duì)于高并發(fā)的后端服務(wù),我們配置了服務(wù)降級(jí)及熔斷策略,保障核心調(diào)度可以穩(wěn)定正常的工作,期間配合 Kubernetes 的 HPA,動(dòng)態(tài)拉起多個(gè)應(yīng)用 Pod 來(lái)減輕請(qǐng)求壓力,我們基于 KubeSphere 設(shè)計(jì)的這一整套微服務(wù)治理方案使得業(yè)務(wù)本身的故障自愈能力大大提升,無(wú)需開(kāi)發(fā)人員介入。

      流量拓?fù)?/p>

      KubeSphere 基于 Jaeger 實(shí)現(xiàn)的 Tracing,使得我們能夠在不同微服務(wù)之間存在的很長(zhǎng)的請(qǐng)求調(diào)用鏈中,清楚地了解服務(wù)性能,以及快速定位排錯(cuò),方便了我們將更多的精力專注于 SmartAnt 遷移平臺(tái)的開(kāi)發(fā)和測(cè)試。

      服務(wù)請(qǐng)求調(diào)用鏈追蹤

      8.如何灰度上線

      對(duì)于頻繁更新的應(yīng)用,灰度上線是必不可少的功能?;?KubeSphere 內(nèi)置的 Istio 提供的金絲雀發(fā)布的特性,我們可以非常方便地在 KubeSphere 控制臺(tái)通過(guò)拖拽的方式對(duì)不同版本的應(yīng)用組件的進(jìn)行灰度發(fā)布上線。

      灰度上線

      9.CI/CD 流水線如何落地

      在 CI/CD 的方案實(shí)施上,我們勇于嘗鮮,在不同的項(xiàng)目環(huán)境中使用了不同 CI/CD 工具方案。

      例如,目前針對(duì) Dev 環(huán)境,為了方便開(kāi)發(fā)人員進(jìn)行協(xié)同開(kāi)發(fā),我們直接使用 Gitalb CI,利用 GitOPS 理念,端到端的開(kāi)發(fā)自動(dòng)部署。

      GitLab CI

      而正式環(huán)境則使用 KubeSphere 內(nèi)置的 DevOps 流水線,天然繼承,無(wú)需多余擴(kuò)張即可實(shí)現(xiàn)應(yīng)用的快速發(fā)布上線。

      如圖, KubeSphere 的 Devops 流水線,WEB 簡(jiǎn)單配置即可生成 Jenkinsfile,快捷方便。另外,我們有一部分應(yīng)用也使用了 Argo CD ,在未來(lái)也計(jì)劃嘗試 Tekton 等。

      KubeSphere 流水線

      CI/CD 流水線

      10.如何落地監(jiān)控與告警

      集群維度的監(jiān)控我們使用了 KubeSphere 內(nèi)置的監(jiān)控,希望 KubeSphere 在后續(xù)版本可以提供更多告警方式。

      我們也自研了一套監(jiān)控告警系統(tǒng),實(shí)現(xiàn)了對(duì) Kubernetes 集群、 Node、事件(Events)、以及業(yè)務(wù)本身的監(jiān)控,通過(guò)短信、微信、釘釘和郵件的方式發(fā)送告警通知給運(yùn)維人員。

      監(jiān)控與告警

      11.日志如何查詢與管理

      KubeSphere 也提供了開(kāi)箱即用的解決方案 FluentBit Operator,在集群所有節(jié)點(diǎn)以 DaemonSet 運(yùn)行,并統(tǒng)一部署配置了 Fluent Bit。

      我們的遷移平臺(tái)在容器化的時(shí)候就一些考慮到后期的日志繼承方式,為適配多種類型的日志,我們將日志分為兩個(gè)地方輸出,一份輸出到 stdout,一份以文件形式持久化到 logs 目錄,萬(wàn)一需要 filebeat 方式繼承,那么無(wú)需后期對(duì)應(yīng)用做其他修改,可借助 KubeSphere 的日志收集,方便快捷地在平臺(tái)上查看日志,也可以將日志發(fā)送到集群外的 ES/Kafka 等接收者中,對(duì)日志進(jìn)行持久化保存,以供后期分析處理。

      同時(shí),KubeSphere 提供了一鍵日志索引與定位的特性,利用該特性,我們可以從日志控制臺(tái)搜索關(guān)鍵字,通過(guò)日志輸出信息發(fā)現(xiàn)問(wèn)題后,一鍵下鉆到出現(xiàn)異常的容器,或項(xiàng)目的詳情頁(yè),快速定位容器異常問(wèn)題。

      日志查詢

      12.KubeSphere 排錯(cuò)實(shí)戰(zhàn)三連載

      當(dāng)然在真實(shí)的微服務(wù)改造及應(yīng)用中困難也不少,之前我也精心整理了 KubeSphere 實(shí)戰(zhàn)排查三連載,希望可以幫助到用 KubeSphere 的用戶朋友。

      《Kubesphere排查實(shí)戰(zhàn)一》

      《Kubesphere排查實(shí)戰(zhàn)二》

      《Kubesphere排查實(shí)戰(zhàn)三》

      13.擁抱開(kāi)源,共話云原生

      KubeSphere 幫助我們將打造了 SmartAnt 云原生遷移平臺(tái),我們能夠把更多的精力放在遷移平臺(tái)的邏輯業(yè)務(wù)開(kāi)發(fā)。

      同時(shí),KubeSphere 提供從基礎(chǔ)設(shè)施高可用部署、CI/CD、服務(wù)治理、權(quán)限管控、監(jiān)控日志告警等一整套完善的云原生解決方案,并且 KubeSphere 是完全開(kāi)源的,社區(qū)也非?;钴S,在這里可以遇到志同道合的友人,共同探討適合自己的業(yè)務(wù)轉(zhuǎn)型的云原生之路。

      關(guān)閉
      精彩放送
      亚洲自偷自偷在线成人网站传媒 | 在线电影你懂的亚洲| 亚洲精品国产电影| 亚洲人成激情在线播放| 亚洲a一级免费视频| 亚洲人成无码网站| 在线A亚洲老鸭窝天堂| 亚洲色一色噜一噜噜噜| 亚洲VA综合VA国产产VA中| 久久无码av亚洲精品色午夜 | 亚洲国产精品网站在线播放| 自拍偷区亚洲国内自拍| 中文字幕亚洲情99在线| 99久久国产亚洲综合精品| 亚洲熟妇无码一区二区三区| 亚洲国产精品无码第一区二区三区| 色偷偷尼玛图亚洲综合| 小说专区亚洲春色校园| 亚洲AV中文无码乱人伦在线视色| 成人伊人亚洲人综合网站222| 亚洲综合色视频在线观看| 亚洲综合精品香蕉久久网| 亚洲女初尝黑人巨高清| 亚洲av无码乱码国产精品| 亚洲AV无码1区2区久久| 亚洲综合男人的天堂色婷婷| 亚洲毛片一级带毛片基地| 久久精品国产亚洲AV久| 亚洲一日韩欧美中文字幕在线| 亚洲精品欧美综合四区| 亚洲AV色无码乱码在线观看| 亚洲第一页综合图片自拍| 国产亚洲成人在线播放va| 亚洲精品无码mv在线观看网站| 亚洲av永久无码制服河南实里| 久久精品国产亚洲77777| 亚洲jjzzjjzz在线播放| 亚洲Av永久无码精品一区二区| 亚洲AV无码一区二区三区电影| 亚洲av无码不卡私人影院| 亚洲一区二区三区AV无码|