1. 程式人生 > >consul服務配置維護

consul服務配置維護

次數 級別 系統 合並 member war cache rem gin

1、命令參數

-advertise:通知展現地址用來改變我們給集群中的其他節點展現的地址,默認情況下-bind地址就是展現地址,然而也存在一些路由地址是不能受約束的,這時候會激活一個不同的地址來供應,如果這個地址不能路由,這個路由將不能被加入集群

-bootstrap:用來控制一個server是否在bootstrap模式,在一個datacenter中只能有一個server處於bootstrap模式,當一個server處於bootstrap模式時,可以自己選舉為raft leader,在一個節點的模式下這種方式很重要,否則在集群中的一致性不能保證,不推薦在集群中應用這個標識

-bootstrap-expect:在一個datacenter中期望提供的server節點數目,當該值提供的時候,consul一直等到達到指定sever數目的時候才會引導整個集群,該標記不能和bootstrap公用(推薦使用的方式)

-bind:該地址用來在集群內部的通訊,集群內的所有節點到地址都必須是可達的,默認是0.0.0.0,這意味著Consulo會使用第一個可用的私有IP地址,Consul可以使用TCP和UDP並且可以使用共同的端口,如果存在防火墻,這兩者協議必須是允許的。

-client:consul綁定在哪個client地址上,這個地址提供HTTP、DNS、RPC等服務,默認是127.0.0.1,只允許回路連接。RPC地址用於Consul命令,比如Consul members可以查詢當前運行的Consul代理

-config-file:明確的指定要加載哪個配置文件,文件下的所有配置會合並在一起進行加載

-config-dir:配置文件目錄,裏面所有以.json結尾的文件都會被加載

-data-dir:提供一個目錄用來存放agent的狀態,所有的agent允許都需要該目錄,該目錄必須是穩定的,系統重啟後都繼續存在

-dc:該標記控制agent運行的datacenter的名稱,默認是dc1

-encrypt:指定secret key,使consul在通訊時進行加密,key可以通過consul keygen生成,同一個集群中的節點必須使用相同的key

-http-port:HTTP API偵聽端口,默認端口8500,可以在環境變量中進行設置,非常有用,可以用於與Consul進行通訊

-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。跟蹤 調試 詳情 警告 錯誤,可以通過Consul monitor使用任何級別,也可以通過重啟加載新的配置級別

-node:節點在集群中的名稱,在一個集群中必須是唯一的,默認是該節點的主機名(代表一個機器)

-pid-file:提供一個路徑來存放pid文件,可以使用該文件進行SIGINT/SIGHUP(關閉/更新)agent

-protocol:consul使用的協議版本 consul -v

-rejoin:使consul忽略先前的離開,在再次啟動後仍舊嘗試加入集群中。

-server:定義agent運行在server模式還是Client模式,提供時即為Server端,每個集群至少有一個server並且每臺機器上不要超過5個dataceter.所有服務器采用一致性算法Raft保證數據一致,確保在故障的情況下的可用性。

-syslog:開啟系統日誌功能,只在linux/osx上生效

-ui-dir:提供存放web ui資源的路徑,該目錄必須是可讀的

2、配置參數

Consul配置信心可以填寫在.json文件中,配置文件加載時會按照文件名字母排序的順序讀取,效果與命令行一致。

acl_datacenter:只用於server,指定的datacenter的權威ACL信息,所有的servers和datacenter必須同意ACL datacenter

acl_default_policy:默認是allow

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

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:一個字符數組提供的節點地址會在啟動時被加入

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一個詳細名單

consul服務配置維護