consul 命令行参数
Consul(https://www.consul.io/downloads.html)是HashiCorp公司推出的開源工具,用于實現分布式系統的服務發現與配置共享。與其他分布式服務注冊與發現的方案,Consul的方案更"一站式",內置了服務注冊與發現框 架、分布一致性協議實現(Raft算法)、健康檢查、Key/Value存儲、多數據中心方案,不再需要依賴其他工具(比如ZooKeeper等)。
?
Consul用Golang實現,因此具有天然可移植性(支持Linux、windows和Mac OS X);安裝包僅包含一個可執行文件,方便部署,與Docker等輕量級容器可無縫配合。
?
Consul的角色:
Agent - 運行在consul集群的每個node上的daemon,agent可以run在server或者是client上,每個agent都可以提供DNS或者是HTTP的接口,負責health check和service發現等。用consul agent命令可以啟動,具體可run "consul agent --help"查看參數。
?
Client - client把所有的RPCs轉發到server端,是相對無狀態的。唯一在后臺運行的時client端執行了LAN gossip pool,只消耗極少的資源和網絡帶寬。
?
server: 負責維護cluster state, RPC quiries, 和其他數據中心交換WAN gossip,轉發queries給leader或者其他數據中心。 每個數據中心的 server 數量推薦為 3 個或是 5 個.
?
Datacenter:指的是網絡環境是私有,低延遲,高帶寬的,排除和公網的通信。
?
Serf:consul是基于Serf上實現的,Serf是一個服務發現,編配(應用集群管理等)工具,它去中心化,高可用并且能故障恢復(容忍), Serf使用Gossip協議,采用Go語言編寫。Serf提供成員關系,糾錯檢查,廣播的功能。gossip包含的任意node-to-node間的通信,主要是基于UDP。
?
WAN Gossip:指 WAN gossip pool 包含哪些都在同一局域網或者是datacenter的node。
?
RPC:Remote Procedure Call. 客戶端和服務器端的請求/應答機制。
?
consul命令格式:
consul [--version] [--help] <command> [<args>]
Available commands are:
agent ? ? ? ? ?Runs a Consul agent
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
leave ? ? ? ? ?Gracefully leaves the Consul cluster and shuts down
members ? ? ? ?Lists the members of a Consul cluster
monitor ? ? ? ?Stream logs from a Consul agent
reload ? ? ? ? Triggers the agent to reload configuration files
version ? ? ? ?Prints the Consul version
?
命令行參數:
-advertise:通知展現地址用來改變我們給集群中的其他節點展現的地址,一般情況下-bind地址就是展現地址
-bootstrap:用來控制一個server是否在bootstrap模式,在一個datacenter中只能有一個server處于bootstrap模式,當一個server處于bootstrap模式時,可以自己選舉為raft leader。
-bootstrap-expect:在一個datacenter中期望提供的server節點數目,當該值提供的時候,consul一直等到達到指定sever數目的時候才會引導整個集群,該標記不能和bootstrap公用
-bind:該地址用來在集群內部的通訊,集群內的所有節點到地址都必須是可達的,默認是0.0.0.0
-client:consul綁定在哪個client地址上,這個地址提供HTTP、DNS、RPC等服務,默認是127.0.0.1
-config-file:明確的指定要加載哪個配置文件
-config-dir:配置文件目錄,里面所有以.json結尾的文件都會被加載
-data-dir:提供一個目錄用來存放agent的狀態,所有的agent允許都需要該目錄,該目錄必須是穩定的,系統重啟后都繼續存在
-dc:該標記控制agent允許的datacenter的名稱,默認是dc1
-encrypt:指定secret key,使consul在通訊時進行加密,key可以通過consul keygen生成,同一個集群中的節點必須使用相同的key
-join:加入一個已經啟動的agent的ip地址,可以多次指定多個agent的地址。如果consul不能加入任何指定的地址中,則agent會啟動失敗,默認agent啟動時不會加入任何節點。
-retry-join:和join類似,但是允許你在第一次失敗后進行嘗試。
-retry-interval:兩次join之間的時間間隔,默認是30s
-retry-max:嘗試重復join的次數,默認是0,也就是無限次嘗試
-log-level:consul agent啟動后顯示的日志信息級別。默認是info,可選:trace、debug、info、warn、err。
-node:節點在集群中的名稱,在一個集群中必須是唯一的,默認是該節點的主機名
-protocol:consul使用的協議版本
-rejoin:使consul忽略先前的離開,在再次啟動后仍舊嘗試加入集群中。
-server:定義agent運行在server模式,每個集群至少有一個server,建議每個集群的server不要超過5個
-syslog:開啟系統日志功能,只在linux/osx上生效
-ui-dir:提供存放web ui資源的路徑,該目錄必須是可讀的
-pid-file:提供一個路徑來存放pid文件,可以使用該文件進行SIGINT/SIGHUP(關閉/更新)agent
?
配置文件參數:
acl_datacenter:只用于server,指定的datacenter的權威ACL信息,所有的servers和datacenter必須同意ACL datacenter
acl_default_policy:默認是allow
acl_down_policy:
acl_master_token:
acl_token:agent會使用這個token和consul server進行請求
acl_ttl:控制TTL的cache,默認是30s
addresses:一個嵌套對象,可以設置以下key:dns、http、rpc
advertise_addr:等同于-advertise
bootstrap:等同于-bootstrap
bootstrap_expect:等同于-bootstrap-expect
bind_addr:等同于-bind
ca_file:提供CA文件路徑,用來檢查客戶端或者服務端的鏈接
cert_file:必須和key_file一起
check_update_interval:
client_addr:等同于-client
datacenter:等同于-dc
data_dir:等同于-data-dir
disable_anonymous_signature:在進行更新檢查時禁止匿名簽名
disable_remote_exec:禁止支持遠程執行,設置為true,agent會忽視所有進入的遠程執行請求
disable_update_check:禁止自動檢查安全公告和新版本信息
dns_config:是一個嵌套對象,可以設置以下參數:allow_stale、max_stale、node_ttl 、service_ttl、enable_truncate
domain:默認情況下consul在進行DNS查詢時,查詢的是consul域,可以通過該參數進行修改
enable_debug:開啟debug模式
enable_syslog:等同于-syslog
encrypt:等同于-encrypt
key_file:提供私鑰的路徑
leave_on_terminate:默認是false,如果為true,當agent收到一個TERM信號的時候,它會發送leave信息到集群中的其他節點上。
log_level:等同于-log-level
node_name:等同于-node
ports:這是一個嵌套對象,可以設置以下key:dns(dns地址:8600)、http(http api地址:8500)、rpc(rpc:8400)、serf_lan(lan port:8301)、serf_wan(wan port:8302)、server(server rpc:8300)
protocol:等同于-protocol
recursor:
rejoin_after_leave:等同于-rejoin
retry_join:等同于-retry-join
retry_interval:等同于-retry-interval?
server:等同于-server
server_name:會覆蓋TLS CA的node_name,可以用來確認CA name和hostname相匹配
skip_leave_on_interrupt:和leave_on_terminate比較類似,不過只影響當前句柄
start_join:一個字符數組提供的節點地址會在啟動時被加入
statsd_addr:
statsite_addr:
syslog_facility:當enable_syslog被提供后,該參數控制哪個級別的信息被發送,默認Local0
ui_dir:等同于-ui-dir
verify_incoming:默認false,如果為true,則所有進入鏈接都需要使用TLS,需要客戶端使用ca_file提供ca文件,只用于consul server端,因為client從來沒有進入的鏈接
verify_outgoing:默認false,如果為true,則所有出去鏈接都需要使用TLS,需要服務端使用ca_file提供ca文件,consul server和client都需要使用,因為兩者都有出去的鏈接
watches:watch一個詳細名單
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的consul 命令行参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: raft原理的动画演示
- 下一篇: Consul 入门指南