偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

陌陌基于K8s和Docker容器管理平臺(tái)的架構(gòu)實(shí)踐

原創(chuàng)
開發(fā) 架構(gòu) 云計(jì)算
由51CTO 主辦的第十六期以“Tech Neo”為主題的技術(shù)沙龍活動(dòng)中,來自陌陌科技SRE團(tuán)隊(duì)負(fù)責(zé)人王景學(xué)分享了陌陌在K8s容器方面的一些應(yīng)用實(shí)踐。

【51CTO.com原創(chuàng)稿件】容器集群管理系統(tǒng)與容器云平臺(tái)的選擇非常重要,因?yàn)槿萜鞴芾硐到y(tǒng)是否先進(jìn)智能、容器云管理平臺(tái)是否靈活易用且高效,直接影響企業(yè)開發(fā)運(yùn)維的效率與速度、資源利用率的高低。在這個(gè)競爭激烈,風(fēng)云突變的時(shí)代,應(yīng)用的開發(fā)效率、穩(wěn)定性、擴(kuò)展性和安全性,決定了企業(yè)的競爭力與市值。

當(dāng)下,K8s憑借在擴(kuò)展性、管理、大數(shù)據(jù)分析、網(wǎng)絡(luò)場景、兼容性、負(fù)載均衡、灰度升級(jí)、失敗冗余、容災(zāi)恢復(fù)、 DevOps 等方面的優(yōu)勢,受到部分企業(yè)的青睞。近日,由51CTO 主辦的第十六期以“Tech Neo”為主題的技術(shù)沙龍活動(dòng)中,來自陌陌科技SRE團(tuán)隊(duì)負(fù)責(zé)人王景學(xué)分享了陌陌在K8s容器方面的一些應(yīng)用實(shí)踐。

為什么選擇使用K8s?

在使用k8s之前,陌陌在應(yīng)用發(fā)布和運(yùn)行環(huán)境方面遇到的具體問題,如下:

  • 應(yīng)用發(fā)布時(shí)間很長,主要是因?yàn)榘l(fā)布過程中需要做隔離、恢復(fù)等動(dòng)作,還需要登錄查看實(shí)際狀態(tài)、日志。
  • 當(dāng)遇到晚高峰情況這樣的突發(fā)狀況,需要緊急擴(kuò)容。這時(shí)業(yè)務(wù)方會(huì)申請機(jī)器,可新機(jī)需要進(jìn)行環(huán)境初始化、相關(guān)配置,這樣導(dǎo)致效率非常低。
  • 應(yīng)用運(yùn)行環(huán)境的軟件版本不一致,配置復(fù)雜,維護(hù)成本比較高。
  • 硬件資源利用率不足,總體成本比較高。

針對以上遇到的問題,我們決定對架構(gòu)進(jìn)行改造,同時(shí)制定了一系列架構(gòu)改進(jìn)目標(biāo),如下:

  • 提高服務(wù)可用性,可管理性??捎眯允钱?dāng)某一臺(tái)機(jī)器出現(xiàn)宕機(jī),會(huì)自動(dòng)切換到其他機(jī)器??晒芾硇允窃趹?yīng)用需要擴(kuò)容時(shí),自動(dòng)化去部署運(yùn)行環(huán)境、相關(guān)配置。開發(fā)不需要再去考慮服務(wù)器的問題。
  • 提高資源隔離性,實(shí)現(xiàn)服務(wù)混合部署。
  • 應(yīng)用級(jí)別的監(jiān)控,當(dāng)機(jī)器需要擴(kuò)容時(shí),自動(dòng)排查是哪個(gè)應(yīng)用所致。
  • 服務(wù)平滑遷移。

綜合這些問題和目標(biāo),陌陌選擇使用 Kubernetes來管理 Docker 集群,當(dāng) Kubernetes 滿足不了需求時(shí),可在部署平臺(tái)開發(fā)相應(yīng)的功能來滿足開發(fā)查看日志、監(jiān)控和報(bào)警等需求,盡量避免登錄主機(jī)和容器。

陌陌容器管理平臺(tái)的架構(gòu)演進(jìn)

陌陌從2015年下半年開始對Docker進(jìn)行調(diào)研和實(shí)踐,2016年初開始調(diào)研k8s,嘗試架構(gòu)方面的改進(jìn)工作,基于自研發(fā)布系統(tǒng)及K8s、OVS和Docker構(gòu)建容器管理平臺(tái)。實(shí)現(xiàn)了基于Docker集群的部署系統(tǒng),便于開發(fā)者便捷地部署自己的應(yīng)用程序。最終達(dá)到部署環(huán)境干凈一致,可重復(fù)部署、迅速擴(kuò)容和回滾。

如下圖,是容器管理平臺(tái)的架構(gòu)圖

容器管理平臺(tái)主要功能有集群管理和狀態(tài)展示、灰度發(fā)布和代碼回退、組件模板、應(yīng)用管理、鏡像倉庫和權(quán)限管理等。它采用前后端分離的架構(gòu),前端使用 JS 渲染,后端使用 Python 提供 API。這樣開發(fā)者可以快速的進(jìn)行發(fā)布和回退操作。

容器管理平臺(tái)在應(yīng)用發(fā)布流程,集群調(diào)度策略,k8s節(jié)點(diǎn)網(wǎng)絡(luò)架構(gòu),阿里云支持,基礎(chǔ)監(jiān)控指標(biāo)等方面進(jìn)行了優(yōu)化改進(jìn)。

應(yīng)用發(fā)布流程

陌陌之前老版本發(fā)布系統(tǒng)是串行的,需要單臺(tái)進(jìn)行替換。如下圖,是新架構(gòu)下應(yīng)用的發(fā)布流程

新的發(fā)布系統(tǒng)是用戶提交代碼后,在發(fā)布系統(tǒng)選擇要部署的commit,點(diǎn)擊構(gòu)建以后,系統(tǒng)會(huì)自動(dòng)編譯,打包成鏡像,推送鏡像倉庫。如果構(gòu)建成功,用戶點(diǎn)擊發(fā)布新版本的實(shí)例,灰度沒有問題,全量,下線老版本的實(shí)例?;赝藭r(shí)代碼不需要構(gòu)建,直接發(fā)布老版本實(shí)例。在某段時(shí)間內(nèi),新老版本是同時(shí)存在的。

集群調(diào)度策略

陌陌的集群調(diào)度策略是為應(yīng)用配置默認(rèn)的location(集群標(biāo)簽),如果是線上應(yīng)用,應(yīng)用需要申請location,部署到正式的集群(機(jī)房要求,資源充足)。這里應(yīng)用都不能獨(dú)占集群,均采用的是混合部署的方式。

同一個(gè)集群下,分成不同組并組定義標(biāo)簽,應(yīng)用支持獨(dú)占機(jī)器,同一個(gè)組之間的應(yīng)用實(shí)例可以隨意飄移。

IDC網(wǎng)絡(luò)節(jié)點(diǎn)

在IDC網(wǎng)絡(luò)節(jié)點(diǎn)構(gòu)建部分,陌陌使用的是全局IP地址,容器與容器之間、容器與主機(jī)之間都是互通的。這樣一來,通信可以不使用任何封裝等技術(shù),相對來說比較高效且對現(xiàn)有網(wǎng)絡(luò)變動(dòng)影響小(僅需封裝trunk,無其他協(xié)議,mtu等變化)。

如下圖,是IDC網(wǎng)絡(luò)節(jié)點(diǎn)架構(gòu)圖

在這樣的架構(gòu)下,網(wǎng)絡(luò)部署和擴(kuò)展相對簡單,因?yàn)槊颗_(tái)機(jī)器的IP地址段是預(yù)先靜態(tài)配置的。

這里值得注意的是,服務(wù)器雙鏈路上聯(lián),trunk上聯(lián)物理交換機(jī)需要合理避免二層環(huán)路。

這樣的方式存在的不足是,當(dāng)容器較多時(shí),mac地址數(shù)量增多,給物理交換機(jī)Mac地址表帶來壓力,廣播域擴(kuò)大就是需要嚴(yán)謹(jǐn)?shù)囊?guī)劃vlan 角色相關(guān)信息。

阿里云支持

當(dāng)前,陌陌K8s master集群下節(jié)點(diǎn)包含IDC、阿里云及兩者混合三種方式,如下圖:

阿里云采用的網(wǎng)絡(luò)模式是Host-gw,陌陌搭建了一條IDC與阿里云的VPC專線和VPC的虛擬路由進(jìn)行靜態(tài)配置。無論是IDC節(jié)點(diǎn),還是阿里云節(jié)點(diǎn)上的應(yīng)用都要適應(yīng)IP動(dòng)態(tài)變化。

基礎(chǔ)監(jiān)控指標(biāo)

陌陌的監(jiān)控方案大多是基于Kublet cadvisor metrics接口去做的數(shù)據(jù)匯總。最初陌陌采用的方式是利用Python腳本,去調(diào)用接口,在取到一些CPU內(nèi)存、網(wǎng)絡(luò)、流量的數(shù)據(jù),存入ES,分析之后進(jìn)行展示。之后的報(bào)警系統(tǒng),是利用Java應(yīng)用去調(diào)取Kublet cadvisor metrics接口,進(jìn)行數(shù)據(jù)的收集。

基礎(chǔ)監(jiān)控指標(biāo)主要有內(nèi)存(total,rss,cache)、流量(incoming,outgoing)、網(wǎng)絡(luò)packets(drop,error, total)等。

應(yīng)用遷移

應(yīng)用遷移方面,陌陌做了很多適配工作,使得應(yīng)用不需要太多的改動(dòng)就可以無縫遷移。具體適配細(xì)節(jié)如下:

  • 應(yīng)用適應(yīng)動(dòng)態(tài)ip變化。
  • 自定義構(gòu)建過程(build.sh)。
  • 應(yīng)用使用不同的服務(wù)發(fā)現(xiàn)框架(nginx,rpc)(start.sh)。
  • 應(yīng)用銷毀過程中做一些額外處理(stop.sh)。

在應(yīng)用遷移過程中,也遇到了一些問題,如Swap、cpu軟中斷優(yōu)化、資源利用率、Ip白名單、適用于內(nèi)網(wǎng)等問題。

當(dāng)前,陌陌的容器業(yè)務(wù)規(guī)模服務(wù)器約400臺(tái)、線上容器6000、應(yīng)用700+。應(yīng)用的類型是java+php+node+python+tomcat。

未來展望

希望運(yùn)維可以實(shí)現(xiàn)對應(yīng)用請求量,線程數(shù),流量等指標(biāo)的監(jiān)控。基準(zhǔn)值部分,達(dá)到單實(shí)例可承載請求量,線程數(shù),流量。伸縮方面,做到最小保留實(shí)例數(shù),最大擴(kuò)容實(shí)例數(shù),根據(jù)監(jiān)控反饋和基準(zhǔn)值計(jì)算需要擴(kuò)容和縮容的實(shí)例數(shù), 按照各個(gè)集群資源余量按比例伸縮。

【嘉賓簡介】

陌陌王景學(xué),現(xiàn)任SRE團(tuán)隊(duì)負(fù)責(zé)人,以前運(yùn)維相關(guān)工作都做過,自動(dòng)化,虛擬化,docker,k8s相關(guān)都非常熟悉。

Tech Neo技術(shù)沙龍 | 11月25號(hào),九州云/ZStack與您一起探討云時(shí)代網(wǎng)絡(luò)邊界管理實(shí)踐,點(diǎn)擊圖片,立即報(bào)名。

【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為51CTO.com】

責(zé)任編輯:王雪燕 來源: 51CTO
相關(guān)推薦

2015-03-31 18:26:43

陌陌社交

2012-08-31 14:36:19

陌陌林志霖社交應(yīng)用

2012-08-27 09:39:23

陌陌社交APP

2014-07-25 15:41:12

陌陌WOT2014GoRedis

2021-12-06 16:35:33

QQ微博社交軟件

2014-08-15 17:51:39

聽云

2015-05-12 14:34:09

陌陌

2015-05-27 11:05:46

阿里云陌陌CDN

2023-07-04 07:30:03

容器Pod組件

2012-08-21 15:52:48

2015-07-24 16:49:40

陌陌禮物

2012-08-23 16:41:10

陌陌投資

2012-11-14 09:45:57

陌陌

2015-07-23 11:53:39

我是歌手

2014-05-13 14:11:36

GoRedis

2023-12-25 07:35:40

數(shù)據(jù)集成FlinkK8s

2015-10-21 16:39:43

陌陌魅藍(lán)

2022-01-02 08:42:50

架構(gòu)部署容器

2014-03-09 23:29:12

2014-03-05 09:31:54

陌陌爭霸數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)