K8S容器雲CaaS平臺的落地實踐
前言
在移動網際網路時代,新的技術需要新技術支援環境、新的軟體交付流程和IT架構,從而實現架構平臺化,交付持續化,業務服務化。容器將成為新一代應用的標準交付件,容器雲將幫助企業使用者構建研發流程和雲平臺基礎設施。縮短應用向雲端交付的週期,降低運營門檻。加速向網際網路技術和業務的雙轉型。容器雲將對接各類程式碼託管庫,實現自動化持續整合和DOCKER映象構建,為新一代應用交付和開發運維一體化奠定了基礎。容器雲將支援應用的一鍵式部署交付,提供負載均衡,私有域名繫結,效能監控等應用生命週期管理服務。是微服務架構,輕量級應用部署和運維的理想平臺。未來IT界會以容器化應用作為交付的標準。容器云為開發者和企業提供了一個快速構建、整合、部署、執行容器化應用的平臺,從而提高應用開發的迭代效率,簡化運維環節,降低運維成本。
對於企業來說,容器雲價值體現在:
作為內部技術紐帶,多應用統一部署平臺,提高開發效率,減少運維成本。
平臺產品化過程中,投入少且產出價值高。可依託現有的IaaS平臺資源,相對於傳統的承接專案獲益的方式,容器雲會積累寶貴的客戶資源及資料資源,這些無形資產最終會為公司贏得巨大戰略價值。
增加雲企業辨識度,如果只具有IaaS層服務的雲平臺是不完整的,對使用者的雲服務是不充分的,應該具有為使用者提供全方位的雲服務體系,應該具有先進且高附加值的雲平臺。
應用功能架構
基於Kubernetes實現的容器雲平臺,就功用而言可以分為四大部分:
自動化容器的部署、升級和複製;
隨時擴充套件或收縮容器規模,實現容器的彈性擴充套件;
以叢集的方式執行、管理跨機器的容器,並且提供容器間的負載均衡;
Kubernetes的自我修復機制使得容器叢集總是執行在使用者期望的狀態。
未來容器雲也可能會成為雲管理平臺的統治者,也還會有更多的應用在容器雲上原生執行起來。因為對於容器雲,它可以把很多分散的物理計算資源抽象成一個大的資源池,利用這些資源來執行使用者的計算任務。對於使用者來說,操作一個分散的叢集資源就像在使用一臺計算機。人工智慧的集中式爆發,機器學習的訓練過程對於快速迭代的高要求,讓能夠輕量級接入,並且可以對使用者提供秒級響應的容器雲發揮了巨大的優勢。師出同門的Google Tensorflow專案很早也進行了與Kubernetes的整合,人工智慧平臺上實現了Spark on Kubernetes和 Hadoop on Kubernetes。無論是容器技術,還是DevOps和微服務,都說明靈活、彈性、輕量化的IT應用模式逐漸形成。而這種模式的形成對於複雜產品的快速開發有著積極意義,谷歌等IT巨頭對產業的貢獻,讓初創企業與大型IT企業之間的差距縮短,迎來最好的IT時代。容器雲架構方案,具有六大功能模組,每個部分包含對應的容器技術棧。具體架構如下
儲存方案
後端儲存主要採用 Ceph 驅動。Ceph 獨一無二地用統一的系統提供了物件、塊、和檔案儲存功能,它可靠性高、管理簡便、並且是自由軟體。 Ceph 的強大足以改變貴公司的 IT 基礎架構、和管理海量資料。 Ceph 可提供極大的伸縮性——供成千使用者訪問 PB 乃至 EB 級的資料。 Ceph 節點以普通硬體和智慧守護程式作為支撐點, Ceph 儲存叢集組織起了大量節點,它們之間靠相互通訊來複制資料、並動態地重分佈資料。Ceph在容器雲中主要應用場景是有狀態服務。包括關係型資料庫和nosql資料庫等資料需要持久化的業務。
網路方案
底層容器網路我們最初使用的是Calico。 Calico基本架構圖 Calico是一個純三層網路,沒有引入一個DP,沒有封包。在主機內部做另外一個容器,可以三條到達終端,你可以知道是誰出了問題,除錯的時候很容易,很好管理。容器內的應用資料傳出來,和二層完全隔離,對於我們絕大多數的應用來講只需要三層就夠了,很少有應用處理二層。而且Calico支援豐富的網路策略,可以實現多租戶管理,對於未來對外提供容器雲服務至關重要。
容器編排方案
Kubernetes是谷歌開源的容器叢集管理系統,是Google多年大規模容器管理技術Borg的開源版本,主要功能包括:
1.基於容器的應用部署、維護和滾動升級
2.負載均衡和服務發現
3.跨機器和跨地區的叢集排程
4.自動伸縮
5.無狀態服務和有狀態服務
6.廣泛的Volume支援
7.外掛機制保證擴充套件性
Kubernetes發展非常迅速,已經成為容器編排領域的領導者。Kubernetes提供了很多的功能,它可以簡化應用程式的工作流,加快開發速度。通常,一個成功的應用編排系統需要有較強的自動化能力,這也是為什麼 Kubernetes 被設計作為構建元件和工具的生態系統平臺,以便更輕鬆地部署、擴充套件和管理應用程式。使用者可以使用Label以自己的方式組織管理資源,還可以使用Annotation來自定義資源的描述資訊,比如為管理工具提供狀態檢查等。此外,Kubernetes控制器也是構建在跟開發人員和使用者使用的相同的API之上。使用者還可以編寫自己的控制器和排程器,也可以透過各種外掛機制擴充套件系統的功能。這種設計使得可以方便地在Kubernetes之上構建各種應用系統。目前整個kubernetes叢集採用高可用部署,架構如下圖:
效能監控方案
容器監控的物件主要包括 Kubernetes 叢集(各元件)、應用服務、Pod、容器及網路等。這些物件主要表現為以下三個方面: 1.Kubernetes 叢集自身健康狀態監控(5個基礎元件、Docker、Etcd、Calico等) 2.系統效能的監控,比如:CPU、記憶體、磁碟、網路、filesystem 及 processes 等; 3.業務資源狀態監控,主要包括:rc/rs/deployment、Pod、Service 等; 針對容器的整體執行狀況及效能狀況監控,採用了自研的監控系統實現整體IT資源的統一監控。
日誌收集方案
容器平臺的日誌系統一般包括:Kubernetes 元件的日誌,資源的事件日誌及容器所執行的應用的日誌。本容器雲平臺,使用fluentd(以DaemonSet的方式啟動)來收集日誌,並將收集的日誌傳送給統一日誌平臺。
CI/CD方案
CI/CD(持續整合與部署)模組肩負著 DevOps 的重任,是開發與運維人員的橋樑,它實現了業務(應用)從程式碼到服務的自動上線,滿足了開發過程中一鍵的持續整合與部署的需求。本容器雲平臺,對接持續整合&釋出系統。除此之外,實現服務擴縮容,彈性伸縮(HPA)、負載均衡、灰度釋出等,也加入了程式碼質量檢查(Sonar)、自動化測試及效能測試外掛等,這些都是 CI/CD PaaS 平臺的重要組成部分。
雲平臺功能
透過視覺化介面,可以簡單方便的實現對資源的部署、管理與監控,包括:資源編排。可以實現以下功能: 1.全面監控:主機、路由器、硬碟、公網IP、負載均衡器都具備完整全面的歷史監控和實時監控資訊。 2.開放式的圖形化操作: 直觀展示主機及其相關資源,並可以直接操作圖形,所有改動自動更新。 3.操作日誌記錄: 記錄下使用者所有重要操作歷史,方便定位和查詢。 4.網路拓撲結構展示: 用圖形展示覆雜的網路拓撲結構,連線私有網路和主機更加方便直觀。 5.備份鏈視覺化操作: 對於備份各節點一目瞭然,同時可直接操作新建備份及回滾到之前的狀態。 6.自動伸縮策略: 根據資源監控資訊定義自動伸縮策略,調節資源配置或叢集規模,無需人工介入。 7.通知列表: 用於接收監控告警通知、定時器任務或自動伸縮策略的執行結果。 8.快速的系統構建: 使用資源編排,可以在短短几分鐘內迅速複製一套已存在的擁有複雜拓撲的系統;或者迅速規劃您的系統架構並評估成本;還可以實現資源拓撲的跨區域複用。 9.豐富的模板建立方式: 在控制檯中,使用者可以從無到有構建模板;也可以從系統推薦的常見模板入手建立,或基於已經建立的模板繼續完善;還可以將已經存在的資源抽取出一套拓撲關係成為模板。
總結
caas平臺衍生出來的整個devops體系是至關重要的。最終實現打通日誌,監控和apm資料,演算法實現根因分析,也就是AIOPS。能夠快速定位故障。快速反饋到運維和開發,形成一個閉環。
Gartner定義的AIOps平臺擁有11項能力,包括歷史資料管理( Historical data management) 、流資料管理( Streaming data management )、日誌資料提取( Log data ingestion) 、網路資料提取( Wire data ingestion )、演算法資料提取( Metric data ingestion )、文字和NLP文件提取( Document text ingestion )、自動化模型的發現和預測( Automated pattern discovery and prediction )、異常檢測( Anomaly detection )、根因分析( Root cause determination )、按需交付( On-premises delivery )和軟體服務交付( Software as a service )等。當然這是後續和正在做的工作。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31558019/viewspace-2677178/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 容器雲平臺物理叢集配置實踐
- vivo雲原生容器探索和落地實踐
- 優酷弱網平臺落地實踐
- 360容器平臺監控實踐
- Faas在哈囉AI平臺的落地實踐AI
- 一文讀懂得物雲原生AI平臺--KubeAI的落地實踐過程AI
- 基於容器的金融資料庫雲平臺DBaaS設計實踐分享資料庫
- 美團容器平臺架構及容器技術實踐架構
- Nydus 在約苗平臺的容器映象加速實踐
- 將雲原生進行到底:騰訊百萬級別容器雲平臺實踐揭秘
- 城商行容器雲平臺應用場景及持久化儲存實踐持久化
- 容器技術在企業落地的最佳實踐
- 雲音樂預案平臺實踐
- 馬蜂窩容器化平臺前端賦能實踐前端
- 基於kubernetes自研容器管理平臺的技術實踐
- 阿里雲 Serverless Kubernetes 的落地實踐分享阿里Server
- 京東掃描平臺EOS—JS掃描落地與實踐JS
- vivo AI 計算平臺的 ACK 混合雲實踐AI
- 浙江移動容器雲基於 Dragonfly 的統一檔案分發平臺生產實踐Go
- 案例實踐|Apache Pulsar 在移動雲智慧運維平臺的實踐Apache運維
- 中國移動磐舟磐基平臺基於KubeEdge的落地實踐
- 用友雲平臺,真正的雲原生架構,加速雲應用落地架構
- 融雲 IM 在 Electron 平臺上的設計實踐
- 國泰產險金融級雲原生保險中臺落地實踐
- 如何構建高效自主的容器雲交付平臺?
- 破除軟體開發困局,基於容器平臺的DevOps轉型實踐dev
- 容器平臺
- 車路協同雲控平臺建設實踐
- Kubernetes+Docker+Istio 容器雲實踐Docker
- 火山引擎數智平臺:高效能ChatBI的技術解讀和落地實踐
- 阿里雲基於全新 RocketMQ 5.0 核心的落地實踐阿里MQ
- [平臺建設] HBase平臺建設實踐
- 愛奇藝深度學習雲平臺的實踐及優化深度學習優化
- 雲知聲: 基於 JuiceFS 的超算平臺儲存實踐UI
- 容器雲平臺如何做好安全隔離?
- 企業容器雲管理平臺選型指南
- 阿里雲 PB 級 Kubernetes 日誌平臺建設實踐阿里
- 網易雲音樂機器學習平臺實踐機器學習