日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

安装consul

發(fā)布時間:2025/4/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 安装consul 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

概述
consul是google開源的一個使用go語言開發(fā)的服務(wù)發(fā)現(xiàn)、配置管理中心服務(wù)。內(nèi)置了服務(wù)注冊與發(fā)現(xiàn)框架、分布一致性協(xié)議實現(xiàn)、健康檢查、Key/Value存儲、多數(shù)據(jù)中心方要依賴其他工具(比如ZooKeeper等)。服務(wù)部署簡單,只有一個可運行的二進制的包。每個節(jié)點都需要運行agent,他有兩種運行模式server和client。每個數(shù)據(jù)中心官方建議需要3或5個server節(jié)點以保證數(shù)據(jù)安全,同時保證server-leader的選舉能夠正確的進行。
client
CLIENT表示consul的client模式,就是客戶端模式。是consul節(jié)點的一種模式,這種模式下,所有注冊到當(dāng)前節(jié)點的服務(wù)會被轉(zhuǎn)發(fā)到SERVER,本身是不持久化這些信息。
server
SERVER表示consul的server模式,表明這個consul是個server,這種模式下,功能和CLIENT都一樣,唯一不同的是,它會把所有的信息持久化的本地,這樣遇到故障,信息是可以被保留的。
server-leader
中間那個SERVER下面有LEADER的字眼,表明這個SERVER是它們的老大,它和其它SERVER不一樣的一點是,它需要負責(zé)同步注冊的信息給其它的SERVER,同時也要負責(zé)各個節(jié)點的健康監(jiān)測。
raft
server節(jié)點之間的數(shù)據(jù)一致性保證,一致性協(xié)議使用的是raft,而zookeeper用的paxos,etcd采用的也是taft。
服務(wù)發(fā)現(xiàn)協(xié)議
consul采用http和dns協(xié)議,etcd只支持http
服務(wù)注冊
consul支持兩種方式實現(xiàn)服務(wù)注冊,一種是通過consul的服務(wù)注冊http API,由服務(wù)自己調(diào)用API實現(xiàn)注冊,另一種方式是通過json個是的配置文件實現(xiàn)注冊,將需要注冊的服務(wù)以json格式的配置文件給出。consul官方建議使用第二種方式。服務(wù)發(fā)現(xiàn)
consul支持兩種方式實現(xiàn)服務(wù)發(fā)現(xiàn),一種是通過http API來查詢有哪些服務(wù),另外一種是通過consul agent 自帶的DNS(8600端口),域名是以NAME.service.consul的形式給出,NAME即在定義的服務(wù)配置文件中,服務(wù)的名稱。DNS方式可以通過check的方式檢查服務(wù)。
服務(wù)間的通信協(xié)議
Consul使用gossip協(xié)議管理成員關(guān)系、廣播消息到整個集群,他有兩個gossippool(LAN pool和WAN pool),LAN pool是同一個數(shù)據(jù)中心內(nèi)部通信的,WAN pool是多個數(shù)據(jù)中心通信的,LAN pool有多個,WAN pool只有一個

?

安裝consul-server集群

下載鏡像

docker pull docker.io/consul:latest

  

創(chuàng)建consul配置:

vim /opt/platform/consul/config/server.json {"datacenter": "xxx-consul","data_dir": "/consul/data","server": true,"ui": true,"bind_addr": "172.29.150.25","client_addr": "0.0.0.0","bootstrap_expect": 3,"retry_join": ["172.29.150.25","172.29.150.26","172.29.150.27"],"retry_interval": "10s","rejoin_after_leave": true,"skip_leave_on_interrupt": true }

 

配置說明:

1. datacenter:數(shù)據(jù)中心名稱(庫名)
2. data_dir:數(shù)據(jù)存儲目錄
3. server:運行在server模式
4. ui:使用UI界面
5. bind_addr:內(nèi)部集群通信綁定的地址。默認是宿主機ip,如果有多塊網(wǎng)卡,需要指定,
否則啟動報錯
6. client_addr:客戶端接口綁定的地址,默認是‘0.0.0.0’;
7. bootstrap_expect:集群預(yù)期的server個數(shù),這里我們有3臺server,設(shè)置為3;不能和bootstrap參數(shù)一同使用。這里需要說明下:bootstrap_expect指定的個數(shù)代表了server加入到集群之后,集群中的機器必須=>3的情況才開始選舉server-leader,而如果配置bootstrap的節(jié)點,則啟動的時候默認自己為leader。
8. retry_join:重新加入集群
9. retry_interval:重試時間
10. rejoin_after_leave:在離開集群之后才重試加入
11. skip_leave_on_interrupt :在啟動后,是否ctrl+C優(yōu)雅退出,我們是容器模式,所以不用管,直接true就好了。

額外配置說明(可有可無)
1. start_join:這個參數(shù)是在啟動的時候選擇加入到哪個集群,但是官方推薦retry_join取代他,因為效果更好。
2. enable_syslog:啟用則consul的日志會寫進系統(tǒng)的syslog里,但是如果是在windows上配置改參數(shù)就會報錯。
3. enable_script_checks:是否啟用監(jiān)控檢測腳本,這里沒有對consul集群做監(jiān)控,略。

默認端口說明
1. 8300:consul agent服務(wù)relplaction、rpc(client-server)
2. 8301:lan gossip
3. 8302:wan gossip
4. 8500:http api及UI端口
5. 8600:DNS服務(wù)端口

?

啟動consul-server

docker run -d \ --net=host \ --name consul \ -v /opt/platform/consul/config:/consul/config \ -v /opt/platform/consul/data:/consul/data \ consul agent

web訪問
瀏覽器訪問http://172.16.150.25:8500/ui
只要是server端開啟了UI,任何一個server都能訪問web界面

?

安裝consul-client

創(chuàng)建calico配置文件:

mkdir -p /opt/platform/consul/config/ /opt/platform/consul/data vim /opt/platform/consul/config/client.json {"datacenter": "xxx-test-consul","data_dir": "/consul/data","server": false,"ui": false,"bind_addr": "172.16.5.45","client_addr": "0.0.0.0","bootstrap_expect": 0,"retry_join": ["172.16.150.25","172.16.150.26","172.16.150.27"],"retry_interval": "10s","rejoin_after_leave": true,"skip_leave_on_interrupt": true }

這里client不需要開啟UI及server,所以均為false,以及bootstrap_expect設(shè)為0不參與leader節(jié)點競爭。

  

啟動consul-client

docker run -d \ --net=host \ --name consul \ -v /opt/platform/consul/config:/consul/config \ -v /opt/platform/consul/data:/consul/data \ consul agent

  

查看節(jié)點身份

docker exec consul consul info

  

問題解決:
通過瀏覽器訪問http://172.29.150.202:8500/ui 發(fā)現(xiàn)某個node下已經(jīng)刪除的容器IP還存在,需要找到對應(yīng)的node刪除/opt/platform/consul/data下所有數(shù)據(jù), 重啟consul-client

?

轉(zhuǎn)載于:https://www.cnblogs.com/cjsblogs/p/9146492.html

總結(jié)

以上是生活随笔為你收集整理的安装consul的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。