溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

干貨分享:容器 PaaS 新技術(shù)架構(gòu)下的運維實踐

發(fā)布時間:2020-08-07 21:08:17 來源:ITPUB博客 閱讀:147 作者:時速云001 欄目:云計算

2018年11月16-17日,由 InfoQ 主辦的運維&容器技術(shù)盛會 CNUTCon 全球運維技術(shù)大會在上?!す獯髸怪行某晒εe辦,時速云聯(lián)合創(chuàng)始人兼 CTO 王磊受邀參加此次大會,并發(fā)表主題演講。


王磊此次演講的題目為《容器PaaS 新技術(shù)架構(gòu)下的運維實踐》,詳細為大家講解了在基于 Docker +Kubernetes 構(gòu)建容器 PaaS 的過程中,如何以應用為中心,通過新的技術(shù)、工具對服務、節(jié)點、集群、平臺等多個方面進行管理運維,提高系統(tǒng)的自動化運維能力。同時結(jié)合基于容器PaaS 構(gòu)建 DevOps、微服務產(chǎn)品的實踐經(jīng)驗,分享如何在簡化DevOps 工具和微服務框架本身的同時,提高其可用性和簡化運維管理的成本。


王磊認為,隨著容器技術(shù)的普及落地,容器 PaaS 平臺成為了企業(yè)云計算戰(zhàn)略或云平臺建設中不可或缺的部分;同時,容器技術(shù)也推動了DevOps 和微服務的逐步標準化和深入發(fā)展,容器 PaaS已經(jīng)成為這些新理念、新技術(shù)、新框架的理想支撐平臺。但在容器 PaaS 新技術(shù)架構(gòu)落地過程中,企業(yè)和運維人員還面臨著如下挑戰(zhàn):


  • 新技術(shù)、新理念帶來的學習成本

  • 技術(shù)生態(tài)的飛速發(fā)展帶來的復雜性以及如何保證其穩(wěn)定性

  • 管理高密度、快速變化的運行時環(huán)境的復雜性

  • 如何在新技術(shù)架構(gòu)下提高自由度和創(chuàng)新能力

  • 如何進行跨中心的開發(fā)協(xié)作 – DevOps

  • 微服務架構(gòu)下的平臺支撐及運維


我們先來看一下基于 Kubernetes 的容器 PaaS 平臺有哪些運維的主要方式,這里從用戶服務、節(jié)點、集群、平臺自身運維幾個角度分別介紹。


用戶服務運維的手段,主要包含以下幾點:


  • 所在節(jié)點故障,自動遷移 - 設置合適的驅(qū)趕時間

  • 設置探針,防止容器中服務無響應時帶來的故障

  • 合理設置探針各項參數(shù),滾動升級時保障服務不中斷

  • 使用PodDisruptionBudget服務可用性、PodSecurityPolicy安全性、定義 PriorityClass優(yōu)先級

  • 通過服務分布及各項資源使用情況,打散熱點進行重新調(diào)度

  • 根據(jù)服務的狀態(tài)、重啟次數(shù)等數(shù)據(jù)及持續(xù)時間告警

  • 根據(jù)服務日志匹配策略、頻率告警

  • 結(jié)合 ConfigMap與 gitlab的配置版本控制

  • 把調(diào)試工具交給用戶

  • 服務操作審計、事件統(tǒng)一管理


同時對于數(shù)據(jù)中間件的支撐,可以通過 CRD 和自定義 operator 的方式來對不同的中間件集群進行部署運維等操作。包括集群的創(chuàng)建維護,數(shù)據(jù)的備份恢復,存儲的擴容等,都可以通過不同的 CRD 及 controller 的方式進行實現(xiàn),既要保證服務的可用性,又要保證數(shù)據(jù)的安全性。


集群節(jié)點的運維,可以從以下幾點考慮并靈活運用:


  • 主要資源指標監(jiān)控、告警

  • Node affinity /taint

  • 鏡像、容器gc 策略

  • 擴展節(jié)點設備類型- ListAndWatch / Allocate

  • 節(jié)點維護狀態(tài)

  • 時間同步

  • 節(jié)點故障、自定義 agent 上報異常情況

  • 節(jié)點資源不足時的處理

    -驅(qū)趕策略

    -節(jié)點 OOM 行為

     -最佳實踐(預留資源、服務QoS、DaemonSet)


對于 Kubernetes 集群的運維,主要從集群高可用、聯(lián)邦集群、資源管理、配額管理,集群的運維工具、清理工具等方面進行了介紹。同時,在不同的底層 IaaS 平臺基礎(chǔ)上,還可以充分發(fā)揮 IaaS 的一些能力來簡化或者改善容器 PaaS 的運維工作。隨著 Kubernetes 自身的快速迭代,升級也就成了不得不考慮的一方面,目前我們提供兩種升級路徑,in-place或者 data migration,分別適合小版本升級和跨度較大的版本升級。


干貨分享:容器 PaaS 新技術(shù)架構(gòu)下的運維實踐


同時,對于整個平臺的監(jiān)控、運維,我們開發(fā)了一個獨立的、易于部署的監(jiān)控平臺,用來對開發(fā)測試鏡像倉庫,生產(chǎn)鏡像倉庫、PaaS 平臺、各類 API 服務、K8s 集群及其核心組件、各節(jié)點組件等進行統(tǒng)一狀態(tài)收集,可以監(jiān)控相關(guān)服務的狀態(tài),也可以對歷史狀態(tài)和異常情況進行回溯,從整體上考量每個組件的服務質(zhì)量。


干貨分享:容器 PaaS 新技術(shù)架構(gòu)下的運維實踐

對于平臺的運維,當然也要考慮到對數(shù)據(jù)的備份和恢復,以便在某些場景下對數(shù)據(jù)進行回滾操作。我們的容器 PaaS 上也提供了平臺、集群相關(guān)的數(shù)據(jù)定時備份及恢復管理,可以把平臺的 MySQL 數(shù)據(jù)及每個集群的 etcd 數(shù)據(jù)進行統(tǒng)一管理,也允許接入自定義備份源,實現(xiàn)對數(shù)據(jù)的統(tǒng)一管理。


干貨分享:容器 PaaS 新技術(shù)架構(gòu)下的運維實踐

接下來,介紹一下我們?nèi)绾位?Kubernetes 構(gòu)建自己的 DevOps 平臺。首先說一下時速云對自己的 DevOps 平臺的期望:


  • 可以更簡單的同其它 DevOps 或者第三方工具集成

  • 用戶的 DevOps 需求比較多樣,需要有更好的定制能力

  • 更容易安裝、運維、擴展和伸縮

  • 減少客戶和公司內(nèi)部的學習成本

  • 同 PaaS 平臺保持一致的用戶體驗和數(shù)據(jù)一致性,充分發(fā)揮 PaaS 平臺已有的能力

  • 幫助自己的 PaaS 和微服務治理產(chǎn)品實現(xiàn)更好的 DevOps 能力


整體 DevOps 平臺的基本架構(gòu)如下,通過自定義 CRD 和 operator 來對構(gòu)建任務進行管理,日志的收集、監(jiān)控告警、節(jié)點管理、構(gòu)建資源的伸縮、配額管理、權(quán)限控制都可以同PaaS 層的能力相一致,同時可以利用 PaaS 上的 Pod、Job、CronJob、Volume、ConfigMap、Secret 等諸多資源的能力,在持續(xù)集成、持續(xù)交付、持續(xù)部署等方面進行創(chuàng)新。未來 PaaS 層的新功能、功能改善,都可以直接適用于 DevOps 平臺,大大降低了 DevOps 的開發(fā)和運維成本。


干貨分享:容器 PaaS 新技術(shù)架構(gòu)下的運維實踐


接著,我們來看一下如何在 DevOps平臺上實現(xiàn) CI/CD的一些例子:


  • 實現(xiàn) docker 鏡像的構(gòu)建

  • 如何對構(gòu)建中的產(chǎn)出物進行管理(war 包、jar 包等)

  • 實現(xiàn) Gitlab/Jenkins/Sonar 等工具的集成

  • 人工審核任務

  • 實現(xiàn) Gitlab/Harbor/Jira 等工具的集成


最后,再分享一下如何在容器 PaaS 的新技術(shù)平臺上更好的支撐位服務治理框架。主要包括如何對跨部門、跨中心的微服務協(xié)同開發(fā)進行支撐,如何減少微服務框架和 PaaS 平臺之間的能力沖突,使彼此更好的融合。


干貨分享:容器 PaaS 新技術(shù)架構(gòu)下的運維實踐

在 Spring Cloud 和 K8s融合方面,可以使用 Spring Cloud開源的依賴項目,使用 K8s自身的服務發(fā)現(xiàn)、配置管理等相關(guān)能力;同時為了方便管理運維,我們將 Zuul 的路由配置使用數(shù)據(jù)庫進行持久化,將 Zipkin 的調(diào)用鏈數(shù)據(jù)和 Hystrix 的熔斷監(jiān)控數(shù)據(jù)分別進行了持久化,以便隨時對歷史數(shù)據(jù)進行回溯;也可以直接在微服務治理平臺上動態(tài)配置熔斷策略或者開啟降級操作。


在 Dubbo 和 K8s 融合方面,我們在 K8s 上進行了擴展,并對 Dubbo 的依賴包進行定制,替換了 zookeeper,使用 k8s 作為服務發(fā)現(xiàn)和注冊中心,并支持 dubbo consumer 和 provider 之間通過 K8s 的 service 或者 pod ip 進行通信,用戶可以根據(jù)自己的需求選擇使用服務端負載均衡還是 Dubbo 的客戶端負載均衡。


綜上,我們一直致力于打造具備可靠、簡單、自動化、集成擴展、協(xié)作等特點的容器PaaS、DevOps 和微服務治理平臺,希望可以讓用戶更快捷、安全的進行云原生應用的實踐與創(chuàng)新,未來我們也會繼續(xù)在自動化、智能化運維以及引入適合于 容器 PaaS 的 ChatOps 上繼續(xù)自己的努力。


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI