k8s與caas--容器雲caas平臺的落地實踐

前言

在移動互聯網時代,新的技術須要新技術支持環境、新的軟件交付流程和IT架構,從而實現架構平臺化,交付持續化,業務服務化。容器將成爲新一代應用的標準交付件,容器雲將幫助企業用戶構建研發流程和雲平臺基礎設施。縮短應用向雲端交付的週期,下降運營門檻。加速向互聯網技術和業務的雙轉型。容器雲將對接各種代碼託管庫,實現自動化持續集成和DOCKER鏡像構建,爲新一代應用交付和開發運維一體化奠基了基礎。容器雲將支持應用的一鍵式部署交付,提供負載均衡,私有域名綁定,性能監控等應用生命週期管理服務。是微服務架構,輕量級應用部署和運維的理想平臺。將來IT界會以容器化應用做爲交付的標準。容器云爲開發者和企業提供了一個快速構建、集成、部署、運行容器化應用的平臺,從而提升應用開發的迭代效率,簡化運維環節,下降運維成本。
對於企業來講,容器雲價值體如今:算法

  1. 做爲內部技術紐帶,多應用統一部署平臺,提升開發效率,減小運維成本。
  2. 平臺產品化過程當中,投入少且產出價值高。可依託現有的IaaS平臺資源,相對於傳統的承接項目獲益的方式,容器雲會積累寶貴的客戶資源及數據資源,這些無形資產最終會爲公司贏得巨大戰略價值。
  3. 增長雲企業辨識度,若是隻具備IaaS層服務的雲平臺是不完整的,對用戶的雲服務是不充分的,應該具備爲用戶提供全方位的雲服務體系,應該具備先進且高附加值的雲平臺。

應用功能架構

基於Kubernetes實現的容器雲平臺,就功用而言能夠分爲四大部分:sql

  1. 自動化容器的部署、升級和複製;
  2. 隨時擴展或收縮容器規模,實現容器的彈性擴展;
  3. 以集羣的方式運行、管理跨機器的容器,而且提供容器間的負載均衡;
  4. 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 平臺的重要組成部分。nosql

雲平臺功能

經過可視化界面,能夠簡單方便的實現對資源的部署、管理與監控,包括:資源編排。能夠實現如下功能: 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 )等。固然這是後續和正在作的工做。

相關文章
相關標籤/搜索