成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Consul實戰:介紹基礎架構和安裝

開發 架構
Consul是服務網格(service mesh)的一種解決方案,Consul是有服務發現,配置和分段功能的全功能控制平面。這些功能可以根據需要單獨使用,也可以一起使用以構建完整的服務網格。Consul需要一個數據平面,并支持代理和本機集成模型。

[[377416]]

什么是consul

Consul是服務網格(service mesh)的一種解決方案,Consul是有服務發現,配置和分段功能的全功能控制平面。這些功能可以根據需要單獨使用,也可以一起使用以構建完整的服務網格。Consul需要一個數據平面,并支持代理和本機集成模型。Consul附帶了一個簡單的內置代理,因此開箱即用,但也支持Envoy等第三方代理集成。

Consul其實解決了運行微服務和云原生基礎架構的網絡和安全挑戰。Consul提供了一種云原生的軟件驅動路由和分段方法。它還帶來了其他好處,比如故障處理,重試和網絡可觀察。

上面說到了 服務網格和數據平面,服務網格通常是和微服務在一起說的,在這里就不展開說服務網格,后面會有專門的文章來說,屬于現在很火的云原生的概念,RedHat有篇文章介紹的不錯,需要看的我提供了地址:https://www.redhat.com/en/topics/microservices/what-is-a-service-mesh。數據平面很好理解就是軟件和服務架構中處理數據請求的那層,相比之下,控制平面就是配置和關閉數據平面的軟件部分,這里Consul就起到了控制平面的作用。

Consul的主要特點有以下:

  • 服務發現

Consul的客戶端可以注冊服務,例如api或mysql,客戶端可以使用Consul來發現已注冊的服務。使用DNS或HTTP,應用程序可以輕松找到它們依賴的服務。

  • 健康檢測

Consul客戶端可以提供任何數量的運行狀況檢查,這些檢查可以與給定服務(“ Web服務器是否返回200 OK”)或本地節點(“內存利用率低于90%”)相關。你可以使用此信息來監視群集的運行狀況,服務發現組件可以使用這些信息將流量從不正常的主機轉移走。

  • KV存儲

你應用程序可以將Consul的分層 鍵/值 存儲用于多種目的,不限于 動態配置,功能標記,協調,集群leader選舉等等。Consul提供的簡單HTTP API使其非常易于使用。

  • 安全的服務通信

Consul可以為服務生成和分發TLS證書然后建立相互的TLS連接。意圖 用于定義允許哪些服務進行通信??梢詫崟r更改意圖輕松管理服務分段,而不使用復雜的網絡拓撲和靜態防火墻規則。

  • 多數據中心

Consul開箱即用地支持多個數據中心。這意味著Consul的用戶不必擔心會構建其他抽象層以擴展到多個區域

Consul的設計對DevOps社區和應用程序開發人員非常友好,使其非常適合現代,靈活的基礎架構。

Consul的基本架構

Consul是一個分布式,高度可用系統。本節將介紹基礎知識,有意省略一些不必要的細節,可以快速了解Consul的工作方式。

向Consul提供服務的每個節點都運行著Consul的代理,當用來發現服務 或者 獲取配置的鍵值對數據時,代理可以不需要。代理負責節點上的服務以及節點本身的健康檢測。

代理與一臺或多臺Consul服務器通信。Consul服務器是存儲和復制數據的地方。服務器本身選舉一個領導者。雖然Consul可以在一臺服務器上運行,但建議3到5個節點,以避免發生故障導致數據丟失。建議為每個數據中心都使用Consul服務器集群。

服務器維護一個目錄,該目錄是通過匯總代理提交的數據生成的。該目錄維護著集群的高級視圖,包括哪些服務可用,哪些節點運行這些服務,運行狀況信息等等。

需要發現其他服務或節點的基礎組件,可以查詢任何Consul服務器或任何Consul代理。代理將查詢自動轉發到服務器。

每個數據中心運行一個Consul服務器集群。當發出跨數據中心的服務發現或配置請求時,本地Consul服務器將請求轉發到遠程數據中心并返回結果。

Consul的安裝我這里安裝為了環境方便,采用的是docker的方式,之前也嘗試過虛擬機,筆記本物理機等等,都不如用docker安裝方便。

  • 獲取鏡像文件
  1. docker pull consul 

網絡慢的,可能需要執行大約幾分鐘的時間,可以配置docker鏡像的方式解決,我配置了阿里鏡像

  • 檢查下是否下載完成
  1. ➜  docker images -f 'reference=consul' 
  2. REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE 
  3. consul              latest              2823bc69f80f        4 weeks ago         120MB 
  • 啟動Consul服務器
  1. ➜  docker images -f 'reference=consul' 
  2. REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE 
  3. consul              latest              2823bc69f80f        4 weeks ago         120MB 

-d: 表示后臺啟動

-p: 表示映射本機的8500和8600到docker容器的8500和8600/udp端口

最后一行就是consul 啟動服務器的命令

  • 觀察啟動日志

因為剛才是后臺啟動的,也看不到日志情況,可以通過下面的方式查看

  1. ➜  docker logs d2806ac2b7e1 // 后面的這個id就是容器的id,可以通過 docker -ps -l 查看 

看到這樣的日志,說明就是啟動沒問題的

  1. ==> Starting Consul agent... 
  2.            Version: '1.9.1' 
  3.            Node ID: '5cea9bb5-53f2-e71e-1a46-b23f188da307' 
  4.          Node name'server-1' 
  5.         Datacenter: 'dc1' (Segment: '<all>'
  6.             Server: true (Bootstrap: true
  7.        Client Addr: [0.0.0.0] (HTTP: 8500, HTTPS: -1, gRPC: -1, DNS: 8600) 
  8.       Cluster Addr: 172.17.0.2 (LAN: 8301, WAN: 8302) 
  9.            Encrypt: Gossip: false, TLS-Outgoing: false, TLS 
  10.            .... 
  11.            ==> Consul agent running! 
  12.            .... 

現在服務端啟動了,接下來應該要啟動一個客戶端去連接這個服務端,這里有個問題,我怎么知道我啟動這個服務端的IP地址和端口號,docker提供了可以直接執行容器內Consul命令的方式。

 

  1.   ➜  docker exec d2806ac2b7e1 consul members 
  2. Node      Address          Status  Type    Build  Protocol  DC   Segment 
  3. server-1  172.17.0.2:8301  alive   server  1.9.1  2         dc1  <all

當然你也可以直接進去到容器內部,進去容器內部,使用的是exec命令

  1. docker exec -it d2806ac2b7e1 /bin/sh 
  2. //然后執行 
  3. consul members 

docker執行容器內支持的命令方式為:

  1. docker exec <container_id> consul members 

這里發現 服務端的地址是172.17.0.2:8301

  • 配置運行客戶端
  1. docker run \ 
  2.    --name=test-1 \ 
  3.    consul agent -node=client-1 -join=172.17.0.2 

看到下面的輸出說明沒有問題,注意這里的name是指的容器參數

  1. ==> Starting Consul agent... 
  2. ==> Joining cluster... 
  3.     Join completed. Synced with 1 initial agents 
  4. ==> Consul agent running! 
  5.            Version: 'v1.4.4' 
  6.            Node ID: '4b6da3c6-b13f-eba2-2b78-446ffa627633' 
  7.          Node name'client-1' 
  8.         Datacenter: 'dc1' (Segment: ''
  9.             Server: false (Bootstrap: false
  10.        Client Addr: [127.0.0.1] (HTTP: 8500, HTTPS: -1, gRPC: -1, DNS: 8600) 
  11.       Cluster Addr: 172.17.0.4 (LAN: 8301, WAN: 8302) 
  12.            Encrypt: Gossip: false, TLS-Outgoing: false, TLS-Incoming: false 

通過再次在容器中執行consul Members命令來檢查客戶端是否已加入

  1. docker exec d2806ac2b7e1 consul members 

發現已經變成兩個了,并且狀態都是可用狀態

  1.  docker exec d2806ac2b7e1 consul members 
  2. Node      Address          Status  Type    Build  Protocol  DC   Segment 
  3. server-1  172.17.0.2:8301  alive   server  1.9.1  2         dc1  <all
  4. client-1  172.17.0.3:8301  alive   client  1.9.1  2         dc1  <default

現在有了一個小的數據中心,就可以注冊服務或者配置數據玩了。

其實,查看數據中心的方式,還可以通過web的方式來查看,Consul默認的http接口是8500端口,這個端口啟動的ui接口,可以方便的管理配置數據中心。打開如圖,點擊NODES 查看節點

 

點擊節點,右邊可以看到節點的健康狀態,代理是否可用等

 

總結

到這里,先簡單了解了Consul,然后熟悉了Consul的簡單架構,隨后在docker里面就方便的搭建了一個簡單的Consul集群,并且都是可用狀態。

本文轉載自微信公眾號「碼小菜」,可以通過以下二維碼關注。轉載本文請聯系碼小菜公眾號。

 

責任編輯:武曉燕 來源: 碼小菜
相關推薦

2021-01-27 05:44:00

Consul術語命令

2022-12-15 17:31:41

架構龍芯

2011-12-20 15:52:03

PhoneGap架構基礎工作原理

2019-11-06 10:55:32

虛擬化VMware vSph架構

2011-03-02 17:17:36

FireFTP安裝

2021-09-04 00:03:30

AMDCPU架構

2023-06-02 08:33:43

微服務架構服務注冊

2020-12-24 07:29:32

云計算云基礎云原生DevOps

2010-11-01 06:43:21

PowerShell

2011-03-29 15:52:38

Cacti配置

2012-07-23 16:18:52

Linux集群HPC架構

2022-01-26 09:36:53

Consul語言微服務

2011-05-31 14:03:13

2023-05-12 07:52:13

架構設計設計原則

2010-11-24 11:23:02

虛擬基礎架構遷移

2021-09-17 13:29:43

開發技能代碼

2009-09-22 09:27:29

Hibernate P

2011-06-21 14:42:37

ECMAScriptJavaScript

2022-05-27 08:01:36

JVM內存收集器

2018-04-28 09:20:19

DASNASSAN
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 超碰综合 | 高清视频一区二区三区 | 日韩精品免费视频 | 欧美一区二区在线视频 | 成人在线视频网址 | 黄色片免费 | 国产亚洲精品久久久久动 | 中文字幕第5页 | 天天操精品视频 | 亚洲成人观看 | 欧美日韩在线一区二区三区 | 欧美日韩在线精品 | 在线免费观看日本 | 日日干夜夜草 | 一区二区三区免费观看 | 国产农村妇女精品一区 | 九一视频在线播放 | 99精品99| 狠狠干狠狠操 | 最新国产精品精品视频 | 亚洲不卡在线观看 | 久久精品二区 | 久久久久国色av免费观看性色 | 国产丝袜一区二区三区免费视频 | 播放一级毛片 | 北条麻妃国产九九九精品小说 | 国产精品日韩 | 欧美国产一区二区 | 久久国产精品免费一区二区三区 | 2018中文字幕第一页 | 国产视频不卡一区 | 在线观看国产www | 成人久久18免费 | 涩涩导航| 在线观看中文字幕dvd播放 | 亚洲精品一区中文字幕乱码 | 精品一区二区三区av | 久久国产精品视频 | 国产精品区一区二区三 | 国产精品欧美一区喷水 | 国产成人99 |