詳解consul的安裝和配置
Consul 簡化了分布式環(huán)境中的服務(wù)的注冊和發(fā)現(xiàn)流程,通過 HTTP 或者 DNS 接口發(fā)現(xiàn)。支持外部 SaaS 提供者等。
consul提供的一些關(guān)鍵特性:
service discovery:consul通過DNS或者HTTP接口使服務(wù)注冊和服務(wù)發(fā)現(xiàn)變的很容易,一些外部服務(wù),例如saas提供的也可以一樣注冊。
health checking:健康檢測使consul可以快速的告警在集群中的操作。和服務(wù)發(fā)現(xiàn)的集成,可以防止服務(wù)轉(zhuǎn)發(fā)到故障的服務(wù)上面。
key/value storage:一個用來存儲動態(tài)配置的系統(tǒng)。提供簡單的HTTP接口,可以在任何地方操作。
multi-datacenter:無需復(fù)雜的配置,即可支持任意數(shù)量的區(qū)域(數(shù)據(jù)中心)。
官方網(wǎng)站:https://www.consul.io/
系統(tǒng)環(huán)境:CentOS release 6.5 (Final) x64
consul最新版的下載地址
https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_linux_amd64.zip
下載解壓,里面只有一個consul可執(zhí)行文件,執(zhí)行
[root@localhost consul-0.6.4]# consul usage: consul [--version] [--help] <command> [<args>] Available commands are: agent Runs a Consul agent configtest Validate config file event Fire a new event exec Executes a command on Consul nodes force-leave Forces a member of the cluster to enter the "left" state info Provides debugging information for operators join Tell Consul agent to join cluster keygen Generates a new encryption key keyring Manages gossip layer encryption keys leave Gracefully leaves the Consul cluster and shuts down lock Execute a command holding a lock maint Controls node or service maintenance mode members Lists the members of a Consul cluster monitor Stream logs from a Consul agent reload Triggers the agent to reload configuration files rtt Estimates network round trip time between nodes version Prints the Consul version watch Watch for changes in Consul
其中,最常用到的命令是agent
輸入consul agent -h 可以查看幫助。其中常見的參數(shù)解釋如下:
-advertise:通知展現(xiàn)地址用來改變我們給集群中的其他節(jié)點展現(xiàn)的地址,一般情況下-bind地址就是展現(xiàn)地址
-bootstrap:用來控制一個server是否在bootstrap模式,在一個datacenter中只能有一個server處于bootstrap模式,當(dāng)一個server處于bootstrap模式時,可以自己選舉為raft leader。
-bootstrap-expect:在一個datacenter中期望提供的server節(jié)點數(shù)目,當(dāng)該值提供的時候,consul一直等到達到指定sever數(shù)目的時候才會引導(dǎo)整個集群,該標(biāo)記不能和bootstrap公用
-bind:該地址用來在集群內(nèi)部的通訊,集群內(nèi)的所有節(jié)點到地址都必須是可達的,默認是0.0.0.0
-client:consul綁定在哪個client地址上,這個地址提供HTTP、DNS、RPC等服務(wù),默認是127.0.0.1
-config-file:明確的指定要加載哪個配置文件
-config-dir:配置文件目錄,里面所有以.json結(jié)尾的文件都會被加載
-data-dir:提供一個目錄用來存放agent的狀態(tài),所有的agent允許都需要該目錄,該目錄必須是穩(wěn)定的,系統(tǒng)重啟后都繼續(xù)存在
-dc:該標(biāo)記控制agent允許的datacenter的名稱,默認是dc1
-encrypt:指定secret key,使consul在通訊時進行加密,key可以通過consul keygen生成,同一個集群中的節(jié)點必須使用相同的key
-join:加入一個已經(jīng)啟動的agent的ip地址,可以多次指定多個agent的地址。如果consul不能加入任何指定的地址中,則agent會啟動失敗,默認agent啟動時不會加入任何節(jié)點。
-retry-join:和join類似,但是允許你在第一次失敗后進行嘗試。
-retry-interval:兩次join之間的時間間隔,默認是30s
-retry-max:嘗試重復(fù)join的次數(shù),默認是0,也就是無限次嘗試
-log-level:consul agent啟動后顯示的日志信息級別。默認是info,可選:trace、debug、info、warn、err。
-node:節(jié)點在集群中的名稱,在一個集群中必須是唯一的,默認是該節(jié)點的主機名
-protocol:consul使用的協(xié)議版本
-rejoin:使consul忽略先前的離開,在再次啟動后仍舊嘗試加入集群中。
-server:定義agent運行在server模式,每個集群至少有一個server,建議每個集群的server不要超過5個
-syslog:開啟系統(tǒng)日志功能,只在linux/osx上生效
-ui-dir: 提供存放web ui資源的路徑,該目錄必須是可讀的
-pid-file: 提供一個路徑來存放pid文件,可以使用該文件進行SIGINT/SIGHUP(關(guān)閉/更新)agent
要想利用consul提供的服務(wù)實現(xiàn)服務(wù)的注冊與發(fā)現(xiàn),我們需要建立consul cluster。
在consul方案中,每個提供服務(wù)的節(jié)點上都要部署和運行consul的agent,所有運行consul agent節(jié)點的集合構(gòu)成consul cluster。
consul agent有兩種運行模式:server和client。這里的server和client只是consul集群層面的區(qū)分,與搭建在cluster之上的應(yīng)用服務(wù)無關(guān)。
以server模式運行的consul agent節(jié)點用于維護consul集群的狀態(tài),
官方建議每個consul cluster至少有3個或以上的運行在server mode的agent,client節(jié)點不限。
我們這里以安裝三個節(jié)點為例,環(huán)境配置如下
192.168.1.100 以server模式運行
192.168.1.101,192.168.1.102 以client模式運行
一:配置consul
把上面下載的文件解壓,并把consul拷貝到/opt/consul目錄,然后把/opt/consul目錄加入到環(huán)境變量(三個節(jié)點依次配置)
二:運行
1:在192.168.1.100節(jié)點上面進行
cd /opt/consul mkdir data consul agent -server -bootstrap -bind=0.0.0.0 -client=192.168.1.100 -data-dir=data -ui -node=192.168.1.100
這樣,就啟動了一個節(jié)點
2:在192.168.1.101節(jié)點上面進行
cd /opt/consul mkdir data consul agent -bind=0.0.0.0 -client=192.168.1.101 -data-dir=data -node=192.168.1.101 -join=192.168.1.100
3:在192.168.1.102節(jié)點上面進行
cd /opt/consul mkdir data consul agent -bind=0.0.0.0 -client=192.168.1.102 -data-dir=data -node=192.168.1.102 -join=192.168.1.100
全部節(jié)點啟動完之后
訪問http://192.168.1.100:8500/ 即可查看consul集群的管理頁面
在任意節(jié)點執(zhí)行consul members 即可查看集群節(jié)點信息
這里在192.168.1.100節(jié)點執(zhí)行
[root@localhost consul-0.6.4]# consul members -rpc-addr=192.168.1.100:8400 Node Address Status Type Build Protocol DC 192.168.1.101 192.168.1.101:8301 alive client 0.6.4 2 dc1 192.168.1.102 192.168.1.102:8301 alive client 0.6.4 2 dc1 192.168.1.100 192.168.1.100:8301 alive server 0.6.4 2 dc1
關(guān)閉節(jié)點
consul leave -rpc-addr=192.168.1.100:8400
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
CentOS?8.2?k8s?基礎(chǔ)環(huán)境配置
這篇文章主要介紹了CentOS?8.2?k8s?基礎(chǔ)環(huán)境配置,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10詳解kubelet?創(chuàng)建pod流程代碼圖解及日志說明
這篇文章主要為大家介紹了詳解kubelet?創(chuàng)建pod流程代碼圖解及日志說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09K8s學(xué)習(xí)之Pod的定義及詳細資源調(diào)用案例
Kubernetes將所有內(nèi)容抽象為資源,通過操作資源管理集群,核心單元是Pod,通過控制器管理Pod,資源管理分為命令式對象管理、命令式對象配置和聲明式對象配置,各有適用場景,需要的朋友可以參考下2024-09-09Kubernetes教程之Windows?HostProcess?運行容器化負載
這篇文章主要介紹了Kubernetes?Windows?HostProcess?運行容器化負載,本篇內(nèi)容還是比較多的,總共包含了?Windows?HostProcess的創(chuàng)建、為?Windows?Pod?和容器配置?GMSA?和?Windows?的?Pod?和容器配置?RunAsUserName三大功能模塊,需要的朋友可以參考下2022-07-07