云計(jì)算虛擬化技術(shù)叢書 Service Mesh實(shí)戰(zhàn)》—3.2.2服務(wù)發(fā)現(xiàn):Consul

      網(wǎng)友投稿 873 2022-05-30

      3.2.2 服務(wù)發(fā)現(xiàn):Consul

      1. Consul簡(jiǎn)介

      第2章我們談到使用基于文件的服務(wù)發(fā)現(xiàn)方法,但是由于一些原因可能導(dǎo)致高CPU使用率,影響Linkerd的性能,因此不推薦在產(chǎn)線環(huán)境使用該方法。而本節(jié)我們將引入一個(gè)在產(chǎn)線被廣泛使用的服務(wù)發(fā)現(xiàn)工具Consul,Consul同Vagrant一樣也是Hashicorp公司旗下主要產(chǎn)品之一,集服務(wù)發(fā)現(xiàn)、服務(wù)健康監(jiān)測(cè)、鍵值對(duì)數(shù)據(jù)庫(kù),支持跨數(shù)據(jù)中心服務(wù)發(fā)現(xiàn)的高可用分布式系統(tǒng)。

      Consul Agent

      Consul Agent是Consul集群中每個(gè)機(jī)器上長(zhǎng)時(shí)間運(yùn)行的守護(hù)進(jìn)程,其運(yùn)行模式可分為server模式或client模式運(yùn)行,Consul Agent只能以一種模式運(yùn)行,要么server模式,要么client模式。

      Consul Client(client模式)

      Consul Client接收請(qǐng)求方發(fā)起的請(qǐng)求并轉(zhuǎn)發(fā)RPC請(qǐng)求到Consul Server(server模式),然后將Consul Server返回結(jié)果傳遞給請(qǐng)求方,此外,Consul Client加入局域網(wǎng)(LAN)Gossip池以提供成員關(guān)系管理、錯(cuò)誤檢測(cè)以及事件廣播。

      Consul Server(server模式)

      Consul Server維護(hù)整個(gè)Consul集群的運(yùn)行狀態(tài),選擇leader,響應(yīng)Consul Client的RPC請(qǐng)求,不同數(shù)據(jù)中心間萬(wàn)網(wǎng)(WAN)Gossip信息交換以及跨數(shù)據(jù)中心請(qǐng)求轉(zhuǎn)發(fā)。

      數(shù)據(jù)中心

      每個(gè)Consul集群對(duì)應(yīng)一個(gè)邏輯或者物理的數(shù)據(jù)中心。

      Consul架構(gòu)(如圖3-2所示)

      圖3-2 Consul架構(gòu)

      由于本章重點(diǎn)介紹如何配置Linkerd,所以如果你需要了解更多關(guān)于Consul的知識(shí),可參考Consul官方文檔(https://www.consul.io/docs/index.html)。

      2. 基于Docker部署Consul

      根據(jù)上述內(nèi)容,演示環(huán)境中只有三臺(tái)虛擬機(jī),為此我們約定在其中一臺(tái)虛擬機(jī)部署Consul Server,另外兩臺(tái)部署Consul Client,為了方便后續(xù)講解,我們約定linkerd01部署Consul Server,linkerd02和linkerd03部署Consul Client,部署命令為:

      # 部署Consul Server到linkerd01

      # BIND_ADDR=$(ip addr show|grep eth1|grep inet|awk ‘{print }’|cut -d’/’ -f1);\

      docker run -d \

      --net=host \

      --name server \

      consul:1.0.5 agent -server -bootstrap -client=0.0.0.0 -bind=$BIND_ADDR

      # 部署Consul Client到linkerd02和linkerd03,192.168.1.11為linkerd01的地址,也是Consul Leader地址

      # BIND_ADDR=$(ip addr show|grep eth1|grep inet|awk ‘{print }’|cut -d’/’ -f1);\

      docker run -d \

      --net=host \

      --name client \

      consul:1.0.5 agent -bind=$BIND_ADDR -join=192.168.1.11

      完成部署后,可查看Consul集群信息:

      # docker exec server consul members

      Node? ? ? ?Address? ? ? ? ? ? Status? Type? ? Build? Protocol? DC? ?Segment

      Linkerd01? 192.168.1.11:8301? alive? ?server? 1.0.5? 2? ? ? ? ?dc1?

      Linkerd02? 192.168.1.12:8301? alive? ?client? 1.0.5? 2? ? ? ? ?dc1?

      《云計(jì)算與虛擬化技術(shù)叢書 Service Mesh實(shí)戰(zhàn)》—3.2.2服務(wù)發(fā)現(xiàn):Consul

      Linkerd03? 192.168.1.13:8301? alive? ?client? 1.0.5? 2? ? ? ? ?dc1?

      默認(rèn)Consul數(shù)據(jù)中心為dc1,所有注冊(cè)到Consul中服務(wù)DNS域?yàn)閟ervice.consul,比如注冊(cè)服務(wù)booking到Consul,則其DNS記錄為booking.service.consul。

      注意

      (1)演示環(huán)境中部署一臺(tái)Consul Server以作演示之用,而實(shí)際產(chǎn)線環(huán)境中至少需要部署三臺(tái)Consul Server以確保集群高可用。

      (2)我們約定演示環(huán)境中Consul版本為1.0.5。

      3. 部署Dnsmasq

      另外,需要在每臺(tái)機(jī)器部署Dnsmasq,用作Consul DNS緩存,使得所有Consul服務(wù)域名的DNS請(qǐng)求轉(zhuǎn)發(fā)到本地Dnsmasq加速Consul服務(wù)域名解析。具體安裝命令及配置參考provision.sh,并且在啟動(dòng)虛擬機(jī)時(shí)自動(dòng)安裝。

      虛擬化 Go 云計(jì)算

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:jQuery就業(yè)課程之表單選擇器系列
      下一篇:Nginx負(fù)載均衡原理和配置初探
      相關(guān)文章
      亚洲日本国产综合高清| 亚洲一区二区久久| 天天综合亚洲色在线精品| 亚洲日本VA午夜在线影院| 国产成人精品日本亚洲专| 亚洲av专区无码观看精品天堂| 亚洲精品在线免费观看视频| 666精品国产精品亚洲| 久久精品国产亚洲AV电影| 久热综合在线亚洲精品| 久久亚洲国产精品| 亚洲天天做日日做天天看| 亚洲综合一区二区国产精品| 亚洲黄色高清视频| 亚洲国色天香视频| 中中文字幕亚洲无线码| 亚洲国产精品18久久久久久 | 亚洲精华国产精华精华液 | 国产美女亚洲精品久久久综合| 国产L精品国产亚洲区久久| 久久激情亚洲精品无码?V| 亚洲日韩v无码中文字幕| 亚洲春色在线视频| 99亚洲精品高清一二区| 亚洲免费网站在线观看| 国产AV旡码专区亚洲AV苍井空| 亚洲狠狠婷婷综合久久| jjzz亚洲亚洲女人| 亚洲一级片内射网站在线观看| 亚洲综合AV在线在线播放| 亚洲国产AV无码专区亚洲AV| 亚洲最大成人网色| 亚洲avav天堂av在线网爱情| 亚洲乱妇熟女爽到高潮的片| 亚洲av无码乱码在线观看野外| 久久99亚洲综合精品首页| 亚洲AV午夜成人影院老师机影院| 亚洲人成网站在线播放影院在线| 亚洲成无码人在线观看| 亚洲伊人久久大香线蕉AV| 精品韩国亚洲av无码不卡区|