国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何用Consul打造彈性可擴展的PaaS平臺

運維 系統運維 系統 PaaS
Consul的運維成本低,部署簡單、使用方便、五臟俱全,這對于中小型團隊應該是性價比很高的。本文介紹具體的Consul應用過程和相應的步驟,供大家參考!

   作者介紹

[[162541]]
 

  杜威,程序員,混跡互聯網研發和運維近十年。《Linux系統案例精解》合著者之一。目前就職亮風臺,專注DevOps、云計算、大數據等相關領域。

  應用背景

  HiAR 是亮風臺打造的新一代增強現實(AR)開發平臺,提供簡單易用、功能強大、跨平臺的 AR 服務。讓廣大開發者可以輕松使用最前沿的計算機視覺技術、計算機圖形學技術,快速搭建個性化的 AR 應用。

 

  云服務是HiAR平臺中重要的基礎設施。無論從高可用,還是到可擴展,服務發現都發揮著不可或缺的作用。在沒有使用服務發現之前,我們遇到的幾個痛點:

  ◆ 系統添加一個服務節點,我們需要手工修改Nginx/LVS的配置文件、修改DNS記錄。

  ◆ 應用服務發布新版本,我們還是需要手工修改Nginx的配置文件把節點下線、等待發布成功后,再次修改Nginx的配置文件把服務上線。

  ◆ 盡管后來我們對上面兩種場景的運維做了改進,編寫腳本把過程改良為半自動半手動的方式,但還不是很方便,而結合服務注冊就可以做到全自動。

  ◆ 內網DNS出了故障,我們需要對DNS服務進行維護。

  ◆ 沒有服務注冊,限制了Docker的發揮,只能當輕量級虛擬機來用。

  現在,有了服務發現,一切都變得簡單有趣。增減服務節點可以自動更新Nginx/LVS的配置文件;DNS丟一邊吧!用IP就好;接入Mesos+Docker玩彈性擴展。

  為什么選擇 Consul

  已經有很多文章對Zookeeper、etcd、Consul進行比較,這里就不重復類比了。沒有什么比合適更重要!Consul 的運維成本低,部署簡單、使用方便、五臟俱全,這對于中小型團隊應該是性價比很高的。

  在進入實戰前,先看看 Consul 都有哪些特性。

  ◆ 服務注冊。通過HTTP API或DNS,告訴服務注冊中心有新的服務加入。

  ◆ 服務發現。通過HTTP API或DNS,可以知道目標服務的地址和端口。

  ◆ 健康檢查。支持多種方式,HTTP、TCP、Docker、Shell腳本定制化監控。

  ◆ 配置模板。Consul Template 負責定期從服務注冊中心獲取信息,如果有變化自動更新配置文件并重新加載。

  以上四點已經能滿足很多企業的需求。當然這不是Consul的所有,Consul還有很多錦上添花的特性,比如:可視化Web界面、支持多數據中心。

  實戰經驗

  我們對Consul的使用可以歸納到四個方面:部署、應用、管理、升級。

  部署

 

  Consul Cluster有Server和Client兩種角色。Server一般是3~5臺,這也是官方推薦的。Consul Client就是需要進行服務注冊或服務發現的節點。

  Consul的部署簡單、開箱即用,一個consul可執行文件,還沒有亂七八糟的依賴。在官網下載編譯好的Consul agent可執行文件,并上傳到所有Server和Client角色的節點,便隨時可啟動consul agent了。

  下面一起來看看,如何啟動一個Consul集群(3臺Server、1臺Client)。

  實驗環境:

  1. server01 192.168.1.11 
  2.   server02 192.168.1.12 
  3.   server03 192.168.1.13 
  4.   client01 192.168.1.21 

  分別登錄Server01、Server02、Server03,并啟動agent。

  1. [worker@server01 ~]$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -bind=192.168.1.11 -node=server01 
  2.   [worker@server02 ~]$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -bind=192.168.1.12 -node=server02 
  3.   [worker@server03 ~]$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -bind=192.168.1.13 -node=server03 

  新開窗口登錄Server03,加入Server01、Server02的集群。

  1. [worker@server03 ~]$ consul join 192.168.1.11 192.168.1.12 

  上面幾步就完成了初始化Server節點,以后通過-rejoin參數啟動,可以重新加入集群。

  1. [worker@server01 ~]$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -bind=192.168.1.11 -node=server01 -rejoin 
  2.   [worker@server02 ~]$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -bind=192.168.1.12 -node=server02 -rejoin 
  3.   [worker@server03 ~]$ consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -bind=192.168.1.13 -node=server03 -rejoin 

  就這樣三個Server節點部署完畢。接下來,部署Client節點,和Server節點一樣,有初次啟動、手工加入和重新加入集群三步。

  1. [worker@client01 ~]$ consul agent -data-dir /tmp/consul -bind=192.168.1.21 -node=client01 

  還是在Client01上,新開一個登錄窗口,加入Server01的集群。

  1. [worker@client01 ~]$ consul join 192.168.1.11 

  Client01節點日后的維護,通過-rejoin參數啟動,便可重新加入集群。

  1. [worker@client01 ~]$ consul agent -data-dir /tmp/consul -bind=192.168.1.21 -node=client01 -rejoin 

  到這里為止,我們已經搭建好了一個Consul集群。然而,怎么進行服務注冊和服務發現呢?這得跟實際需求緊密結合,在接下來的小節中進一步說明。

  應用 

 

  Consul不是單獨存在的。為了充分發揮Consul的優勢,可以結合Nginx、LVS、Docker等工具來應用。

  Nginx、LVS是系統的基礎組件,RecoService、FeatureService、SearchService是基于SOA的內部服務。前者向Consul集群發現服務,后者向Consul集群注冊服務。Consul是粘合劑也是開關,讓整個系統的運作起來,低成本的實現了彈性伸縮。

  接入層,用的是Nginx,負責反向代理和負載均衡。Nginx節點上跑兩個Consul相關服務。一個是Consul Agent,做Consul Client;另外一個是Consul Template,做服務發現和配置更新。Consul Template負責定期查詢本地Consul Agent,如果相關服務的注冊信息有變化,則更新Nginx的配置文件并重新加載Nginx服務。

  運行Consul Template是實現彈性擴展的關鍵步驟:

  1. $ consul-template -consul 127.0.0.1:8500 -template "/etc/nginx/conf/vhosts/test.ctmpl:/etc/nginx/conf/vhosts/test.conf:nginx -s reload" 

  上面這句命令中,test.conf是Nginx的虛擬主機配置文件,test.ctmpl是該配置文件對應的模板。下面是模板在負載均衡上的代碼片段:

  1. upstream test-cluster { 
  2.   ip_hash;{{range service "test"}} 
  3.   server {{.Address}}:{{.Port}};{{end}} 
  4.   } 

  邏輯層,基于SOA的內部服務集群。不同的內部服務集群之間通信需要做服務發現,這里引入LVS做服務發現。好處是不用在內部服務的代碼里實現服務發現,而且規模大了還要做負載均衡。與接入層的Nginx類似,LVS也用Consul Template定期查詢本地Consul Agent,更新相關配置文件,然后重載服務。

  內部服務如何向服務中心注冊?有兩種方式,一是通過Consul的服務注冊HTTP API,由服務自身在啟動后調用API注冊自己,二是通過在配置文件中定義服務的方式進行注冊。建議使用后面一種方式來做服務注冊。怎么辦到的?請繼續往下看 :)

  為項目添加一個配置文件consul.json,指定服務名稱和服務端口,并加上健康檢查,內容如下:

  1.     "service":  
  2.     { 
  3.         "name" : "test"
  4.         "port" : 9999, 
  5.         "check":  
  6.         { 
  7.           "tcp""127.0.0.1:9999"
  8.           "interval""10s" 
  9.         } 
  10.     } 

  最后一步,對服務進行注冊,需要在Consul agent啟動時指定配置文件,如下:

  1. $ consul agent -data-dir /tmp/consul -node=test -bind=192.168.1.21 -config-dir=/tmp/consul.json 

  管理

  一是節點管理,也就是Consul進程的管理。由于Consul Agent本身不具備高可用能力,所以我們有必要對Consul進程進行接管,我們用的是Systemd,你也可以選擇Supervisord或者Upstart這些進程管理工具。

  二是集群管理,Consul提供了可視化管理界面。可以查看所有的服務和節點,以及它們的健康檢測和當前狀態。

 

  升級

  由于Consul關系到整個系統的正常運作,所以升級的時候還是要很小心。最好在測試環境試驗多幾次,再到生產環境升級。升級的狀況可以歸納為下面三種,需要對號入座之后再進行升級。

  ◆ 特殊版本的升級。在upgrade-specific頁面查看當前升級的版本是否有特殊說明。比如:0.5.1之前的版本直接升級到0.6版本,要借助工具consul-migrate進行數據遷移。

  ◆ 不兼容的升級。使用consul -v查看新版的向后兼容協議版本號,當出現與當前版本不兼容時,需要分兩步升級。先通過參數-protocal=舊的協議版本號,把整個集群升級一次,再把啟動命令中的參數-protocal去掉來重啟所有節點。

  ◆ 標準的升級。如果上面兩種情況都不是,那么恭喜你,你需要做的只是簡單的標準升級。即:停止舊版本的agent,然后啟動新版本的agent。PS:其實大多數情況都是標準升級。

  升級節點的推薦順序是,先升級Server的Follower節點,再升級Server的Leader節點,最后升級所有Client的節點。

  結語

  在系統中引入服務注冊和發現,雖然是一發牽動全身的改造,但整個系統架構會因此受益,尤其是現代的微服務架構。相信很多系統都具備負載均衡、健康檢查、心跳檢測等能力,利用好服務發現,那么彈性伸縮、服務高可用、灰度發布,自然是水到渠成的事情。

責任編輯:武曉燕 來源: 高效運維
相關推薦

2012-11-14 15:25:58

2023-04-18 08:21:23

KafkaApache預訂應用

2015-11-03 16:43:01

容器編排容器環境可擴展

2023-07-26 16:20:36

云原生云計算

2024-03-12 12:22:16

2023-09-25 12:13:00

Android架構

2024-04-02 11:26:42

架構軟件開發

2012-04-12 12:49:22

思科FlexPod架構NetApp

2015-04-14 09:31:10

AWSAWS PaaSSaaS可視化編排

2021-12-31 18:19:18

平臺即服務PaaS云計算服務平臺

2021-09-02 09:42:11

測試軟件可擴展性開發

2013-04-19 15:38:26

云計算中間件Paas

2018-01-31 07:09:57

數據中心虛擬化可擴展性

2022-07-07 14:10:59

PaaS亞馬遜云科技云原生

2015-02-06 09:17:18

PaaS安全控制測試ISSO

2020-11-19 18:08:45

VMware

2009-06-10 16:56:12

可擴展GlassFisJavaEE6

2015-08-18 13:25:12

PaaS服務架構動態擴展

2024-11-20 13:18:21

點贊
收藏

51CTO技術棧公眾號

日韩成人在线观看视频| 国产精品一区久久久久| 亚洲人在线观看| 欧洲视频在线免费观看| 中文字幕视频一区| 日韩视频第二页| 成人综合在线网站| 亚洲天堂第一区| 日韩专区欧美专区| 久久riav| 一本一本久久| 激情视频在线观看一区二区三区| 欧美激情偷拍自拍| 国产美女主播一区| 伊人成综合网伊人222| 91av视频在线观看| 成午夜精品一区二区三区软件| 国产亚洲精品美女久久久| 99thz桃花论族在线播放| 欧美第一区第二区| www.色在线| 亚洲社区在线观看| 蜜桃精品在线| 久久精品国产亚洲精品2020| 免费污视频在线一区| 伊人久久久久久久久久久久久| 成人美女大片| 国产婷婷色综合av蜜臀av| 在线毛片观看| 在线精品播放av| 欧美日韩午夜电影网| 欧美精品精品精品精品免费| 超碰成人福利| 国产精品∨欧美精品v日韩精品| 九九亚洲视频| 91免费视频国产| 国产一区二区精品| 一区二区三区在线视频看| 国产成人精品亚洲日本在线桃色| 99热这里只有精品免费| 久久久一区二区三区捆绑**| 啊啊啊射了视频网站| 欧美性感美女h网站在线观看免费| 国产黄色免费在线观看| 欧美一级日韩一级| 伊人色综合一区二区三区影院视频| 日韩中文字幕在线免费观看| 欧美日韩精品一区二区三区在线观看| 国产精品视频色| 肉丝袜脚交视频一区二区| 日本大胆人体视频| 亚洲欧洲日产国产综合网| 亚洲人成小说| 日韩精品一区二区三区中文精品| 成人看片网页| 国产精品久久综合av爱欲tv| 中文字幕亚洲综合久久五月天色无吗'' | 在线观看免费黄色| 亚洲欧洲一区二区三区在线观看| 2021国产在线| 欧美一区二区三区电影| 日本中文字幕电影在线观看| 亚洲女人被黑人巨大进入| 成人羞羞国产免费网站| 一区二区三区四区av| 91se在线| 亚洲精品一区在线观看香蕉| silk一区二区三区精品视频| 成人区精品一区二区| 国产伦精品一区二区三区免费迷 | 精品视频在线你懂得| 国产精品久久久久久免费观看| 一区二区免费不卡在线| 日本视频在线播放| 在线精品高清中文字幕| 婷婷亚洲一区二区三区| 亚洲人在线视频| 日韩理论在线| 黄黄视频在线观看| caoporm超碰国产精品| 国产嫩草在线观看| 久久精品美女视频网站| 女人av一区| 一级二级三级欧美| 亚洲欧美激情一区二区| 97超碰资源站在线观看| 4438全国成人免费| 狠狠狠色丁香婷婷综合久久五月| 91原色影院| 亚洲成人av在线| 成人在线亚洲| 日韩欧美亚洲天堂| 欧美美女一区二区在线观看| 黄色美女久久久| 在线视频不卡一区二区三区| 午夜精品福利一区二区蜜股av| 性高爱久久久久久久久| 91欧美日韩一区| 久久精品视频免费观看| 日本在线观看高清完整版| 国产美女精品免费电影| 91网上在线视频| segui88久久综合9999| 91久久精品美女| 欧美激情中文字幕| 国产精品一区二区av影院萌芽| 国产精品国产三级国产专区53| 国产精品麻豆久久久| 在线日韩影院| 欧美日韩精品免费观看视一区二区| 亚洲欧美视频一区| 99久久这里有精品| 异国色恋浪漫潭| 欧美精品粉嫩高潮一区二区| 欧美日韩久久精品| 日韩中文字幕a| 日韩视频免费观看| 国产一区二区视频在线播放| av天在线观看| 91精品免费看| 亚洲美女在线国产| 一区中文字幕电影| 又大又硬又爽免费视频| 亚洲福利影片在线| 日韩电影免费在线看| 成人知道污网站| 国产欧美日韩精品一区二区三区 | 高清中文字幕在线| 在线播放日韩av| 国产在线观看一区二区| 国产原创精品视频| 久久国产精品高清| 欧美日韩成人综合天天影院| 亚洲欧美综合久久久| 在线观看国产麻豆| 成人在线激情视频| 亚洲网友自拍偷拍| 欧美h版在线| 日韩a在线观看| 动漫一区二区在线| 69堂亚洲精品首页| 日本欧美一区二区| 英国三级经典在线观看| 特级西西444www大精品视频| 91精品黄色片免费大全| 日韩一区精品字幕| 日本成人三级电影| 欧美xxxxx在线视频| 亚洲18私人小影院| 夜夜爽夜夜爽精品视频| 91蜜臀精品国产自偷在线| 久草在现在线| 国产一区免费视频| 日韩欧美另类在线| 国产自产2019最新不卡| 国产a亚洲精品| 国产超碰在线播放| 日韩av不卡电影| 在线观看不卡一区| 久久一日本道色综合久久| av在线加勒比| 91专区在线观看| 欧美中文在线视频| 欧美吞精做爰啪啪高潮| 美女看a上一区| 成人在线免费| 写真片福利在线播放| 国产精品一区二区不卡视频| 亚洲国产精品yw在线观看| 91在线看国产| 精品日本12videosex| 1769在线观看| 欧美国产视频一区| 日韩美女av在线免费观看| 欧美日韩精品是欧美日韩精品| 日韩黄色小视频| 日韩高清在线观看一区二区| 超碰在线免费看| 亚洲免费久久| 97婷婷涩涩精品一区| 欧美调教femdomvk| 成人av高清在线| 国产韩国精品一区二区三区| 国产夫妻在线| 久草在线官网| 男人添女人下部视频免费| 国产精品狠色婷| 精品亚洲永久免费精品| 亚洲视频 欧洲视频| 日本亚洲天堂网| 97色成人综合网站| 大片免费在线观看| 国产三级国产精品国产专区50| 高清国产一区| 欧美激情啊啊啊| 欧美mv和日韩mv国产网站| 中文字幕一区二区不卡| 丝袜诱惑亚洲看片| 日韩精品永久网址| 久久69av|