consul配置引數大全、詳解、總結

weixin_34127717發表於2018-06-21

命令列選項

以下選項全部在命令列中指定。

  • -advertise - 通告地址用於更改我們通告給叢集中其他節點的地址。預設情況下,-bind地址是通告的。但是,在某些情況下,可能存在無法繫結的可路由地址。這個標誌使閒聊不同的地址來支援這一點。如果此地址不可路由,則節點將處於持續振盪狀態,因為其他節點會將非可路由性視為故障。在Consul 1.0和更高版本中,這可以設定為 go-sockaddr 模板。

  • -advertise-wan - 廣告WAN地址用於更改我們向通過WAN加入的伺服器節點發布的地址。這也可以在與translate_wan_addrs配置選項結合使用時在客戶端代理上設定預設情況下,-advertise地址是通告的。但是,在某些情況下,所有資料中心的所有成員都不能位於同一個物理或虛擬網路上,尤其是混合雲和專用資料中心的混合設定。該標誌使伺服器節點能夠通過WAN的公共網路閒聊,同時使用專用VLAN來相互閒聊以及彼此的客戶端代理,並且如果遠端資料中心是遠端資料中心,則允許客戶端代理在從遠端資料中心訪問時訪問此地址配置translate_wan_addrs在Consul 1.0和更高版本中,這可以設定為 go-sockaddr 模板

  • -bootstrap - 該標誌用於控制伺服器是否處於“引導”模式。每個資料中心最多只能執行一個伺服器,這一點很重要從技術上講,一個處於引導模式的伺服器可以自我選擇為Raft領導者。只有一個節點處於這種模式非常重要; 否則,一致性不能保證,因為多個節點能夠自我選擇。不建議在引導群集後使用此標誌。

  • -bootstrap-expect - 此標誌提供資料中心中預期伺服器的數量。不應該提供此值,或者該值必須與群集中的其他伺服器一致。提供時,Consul會等待指定數量的伺服器可用,然後引導群集。這允許初始領導者自動選舉。這不能與遺留-bootstrap標誌結合使用該標誌需要-server模式。

  • -bind - 應為內部叢集通訊繫結的地址。這是叢集中所有其他節點都應該可以訪問的IP地址。預設情況下,這是“0.0.0.0”,這意味著Consul將繫結到本地計算機上的所有地址,並將 第一個可用的私有IPv4地址通告給群集的其餘部分。如果有多個私有IPv4地址可用,Consul將在啟動時退出並出現錯誤。如果你指定“[::]”,領事將 做廣告第一個可用的公共IPv6地址。如果有多個公共IPv6地址可用,則Consul將在啟動時退出並出現錯誤。Consul同時使用TCP和UDP以及相同的埠。如果您有任何防火牆,請確保同時允許這兩種協議。在Consul 1.0和更高版本中,可以將其設定為要繫結到的空間分隔的地址列表,或者可能會解析為多個地址的 go-sockaddr模板。

  • -serf-wan-bind - 應該被繫結到Serf WAN八卦通訊的地址。預設情況下,該值遵循與-bind命令列標誌相同的規則,如果未指定該值,-bind則使用選項。這在Consul 0.7.1及更高版本中可用。在Consul 1.0和更高版本中,這可以設定為 go-sockaddr 模板

  • -serf-lan-bind - Serf LAN八卦通訊應該繫結的地址。這是群集中所有其他LAN節點應可訪問的IP地址。預設情況下,該值遵循與-bind命令列標誌相同的規則,如果未指定該值,-bind則使用選項。這在Consul 0.7.1及更高版本中可用。在Consul 1.0和更高版本中,這可以設定為 go-sockaddr模板

  • -client - Consul將繫結客戶端介面的地址,包括HTTP和DNS伺服器。預設情況下,這是“127.0.0.1”,只允許回送連線。在Consul 1.0和更高版本中,可以將其設定為要繫結到的空間分隔的地址列表,或者 可能會解析為多個地址的 go-sockaddr模板。

  • -config-file - 要載入的配置檔案。有關此檔案格式的更多資訊,請閱讀配置檔案部分。該選項可以多次指定以載入多個配置檔案。如果指定了多次,稍後載入的配置檔案將與先前載入的配置檔案合併。在配置合併期間,單值鍵(string,int,bool)將簡單地將它們的值替換,而列表型別將被附加在一起。

  • -config-dir - 要載入的配置檔案的目錄。Consul將載入字尾為“.json”的所有檔案。載入順序是按字母順序排列的,並使用與上述config-file選項相同的合併例程 可以多次指定此選項以載入多個目錄。不載入config目錄的子目錄。有關配置檔案格式的更多資訊,請參閱 配置檔案部分。

  • -config-format - 要載入的配置檔案的格式。通常,Consul會從“.json”或“.hcl”副檔名檢測配置檔案的格式。將此選項設定為“json”或“hcl”強制Consul解釋任何帶或不帶副檔名的檔案,以該格式解釋。

  • -data-dir - 此標誌為代理儲存狀態提供了一個資料目錄。這對所有代理都是必需的。該目錄在重新啟動時應該是持久的。這對於在伺服器模式下執行的代理尤其重要,因為它們必須能夠保持群集狀態。此外,該目錄必須支援使用檔案系統鎖定,這意味著某些型別的已裝入資料夾(例如VirtualBox共享資料夾)可能不合適。注意:伺服器和非伺服器代理都可以在此目錄中的狀態下儲存ACL令牌,因此讀取訪問許可權可以授予對伺服器上的任何令牌的訪問許可權,並允許訪問非伺服器上的服務註冊期間使用的任何令牌。在基於Unix的平臺上,這些檔案使用0600許可權編寫,因此您應確保只有受信任的程式可以與Consul一樣的使用者身份執行。在Windows上,您應確保該目錄具有適當的許可權配置,因為這些許可權將被繼承。

  • -datacenter - 此標誌控制執行代理程式的資料中心。如果未提供,則預設為“dc1”。Consul對多個資料中心擁有一流的支援,但它依賴於正確的配置。同一個資料中心內的節點應該位於單個區域網中。

  • -dev - 啟用開發伺服器模式。這對於在關閉所有永續性選項的情況下快速啟動Consul代理非常有用,從而啟用可用於快​​速原型開發或針對API進行開發的記憶體伺服器。此模式適合生產使用,因為它不會將任何資料寫入磁碟。

  • -disable-host-node-id - 將此設定為true將阻止Consul使用來自主機的資訊生成確定性節點標識,並將生成隨機節點標識,該標識將保留在資料目錄中。在同一臺主機上執行多個Consul代理進行測試時,這非常有用。Consul在版本0.8.5和0.8.5之前預設為false,因此您必須選擇加入基於主機的ID。基於主機的ID是使用https://github.com/shirou/gopsutil/tree/master/host生成的,與HashiCorp的Nomad共享 ,因此如果您選擇加入基於主機的ID,則Consul和Nomad將使用資訊在主機上在兩個系統中自動分配相同的ID。

  • -disable-keyring-file - 如果設定,金鑰環不會被儲存到檔案中。任何已安裝的金鑰在關機時將丟失,只有在給定的 -encrypt金鑰在啟動時可用。這預設為false。

  • -dns-port - 偵聽的DNS埠。這將覆蓋預設埠8600.這在Consul 0.7和更高版本中可用。

  • -domain - 預設情況下,Consul響應“consul”中的DNS查詢。域。該標誌可用於更改該域。該域中的所有查詢都假定由Consul處理,不會遞迴解決。

  • -enable-script-checks這將控制是否在此代理上啟用執行指令碼的執行狀況檢查,並且預設為false運營商必須選擇允許這些指令碼如果啟用,建議啟用ACL以控制允許哪些使用者註冊新的檢查以執行指令碼。這是在Consul 0.9.0中新增的。

  • -encrypt - 指定用於加密Consul網路流量的金鑰。該金鑰必須是Base64編碼的16位元組。建立加密金鑰的最簡單方法是使用 consul keygen群集中的所有節點必須共享相同的加密金鑰才能進行通訊。提供的金鑰會自動保留到資料目錄並在代理程式重新啟動時自動載入。這意味著為了加密Consul的閒話協議,這個選項只需要在每個代理的初始啟動序列中提供一次。如果Consul在使用加密金鑰初始化後提供,則忽略提供的金鑰並顯示警告。

  • -hcl - HCL配置片段。此HCL配置片段將附加到配置中,並允許在命令列上指定配置檔案的全部選項。該選項可以多次指定。這是在Consul 1.0中新增的。

  • -http-port - 要監聽的HTTP API埠。這覆蓋了預設埠8500.當將Consul部署到通過環境傳遞HTTP埠的環境時,此選項非常有用,例如像CloudFoundry這樣的PaaS,允許您通過Procfile直接設定埠。

  • -join - 啟動時加入的另一位代理的地址。這可以指定多次以指定多個代理加入。如果Consul無法加入任何指定的地址,代理啟動將失敗。預設情況下,代理在啟動時不會加入任何節點。請注意,retry_join在自動執行Consul叢集部署時,使用 可能更適合幫助緩解節點啟動競爭條件。

    在Consul 1.1.0和更高版本中,這可以設定為 go-sockaddr 模板

  • -retry-join- 類似於-join第一次嘗試失敗時允許重試連線。這對於知道地址最終可用的情況很有用。該列表可以包含IPv4,IPv6或DNS地址。在Consul 1.1.0和更高版本中,這可以設定為 go-sockaddr 模板。如果Consul正在非預設的Serf LAN埠上執行,則必須指定。IPv6必須使用“括號”語法。如果給出多個值,則按照列出的順序嘗試並重試它們,直到第一個成功為止。這裡有些例子:

    # Using a DNS entry
    $ consul agent -retry-join "consul.domain.internal"
    
    # Using IPv4
    $ consul agent -retry-join "10.0.4.67"
    
    # Using IPv6
    $ consul agent -retry-join "[::1]:8301"
    

    »雲端自動加入

    從Consul 0.9.1開始,retry-join使用go-discover庫接受使用雲後設資料進行自動叢集加入的統一介面 有關更多資訊,請參閱雲端自動加入頁面

    # Using Cloud Auto-Joining
    $ consul agent -retry-join "provider=aws tag_key=..."
    
  • -retry-interval - 加入嘗試之間的等待時間。預設為30秒。

  • -retry-max-join在退出程式碼1之前嘗試執行的最大嘗試次數。預設情況下,它設定為0,將其解釋為無限次重試。

  • -join-wan - 啟動時加入的另一個WAN代理的地址。可以指定多次以指定要加入的多個WAN代理。如果Consul無法加入任何指定的地址,代理啟動將失敗。預設情況下,代理-join-wan啟動時不會有任何節點。

    在Consul 1.1.0和更高版本中,這可以設定為 go-sockaddr 模板。

  • -retry-join-wan- 與retry-join第一次嘗試失敗時允許重試wan連線類似這對於我們知道地址最終可用的情況很有用。截至領事0.9.3 支援自動加入

    在Consul 1.1.0和更高版本中,這可以設定為 go-sockaddr 模板

  • -retry-interval-wan- 兩次-join-wan嘗試之間的等待時間預設為30秒。

  • -retry-max-wan-join-wan在退出程式碼1之前嘗試執行的最大嘗試次數。預設情況下,它設定為0,將其解釋為無限次重試。

  • -log-level - Consul代理啟動後顯示的日誌級別。這預設為“資訊”。可用的日誌級別是“跟蹤”,“除錯”,“資訊”,“警告”和“錯誤”。您始終可以通過consul monitor並使用任何日誌級別連線到代理另外,日誌級別可以在配置過載期間更改。

  • -node - 叢集中此節點的名稱。這在叢集內必須是唯一的。預設情況下,這是機器的主機名。

  • -node-id - 在Consul 0.7.3及更高版本中可用,即使節點或地址的名稱發生更改,該節點仍然是該節點的唯一識別符號。這必須採用十六進位制字串的形式,長度為36個字元,例如 adf4238a-882b-9ddc-4a9d-5b6758e4159e如果未提供(最常見的情況),那麼代理將在啟動時生成一個識別符號,並將其儲存在資料目錄中, 以便在代理重新啟動時保持相同。如果可能,主機的資訊將用於生成確定性節點ID,除非-disable-host-node-id設定為true。

  • -node-meta- 在Consul 0.7.3及更高版本中可用,這指定了一個任意的後設資料鍵/值對,與表單的節點相關聯key:value這可以指定多次。節點後設資料對具有以下限制:

    • 每個節點最多可註冊64個鍵/值對。
    • 後設資料金鑰的長度必須介於1到128個字元(含)之間
    • 後設資料鍵只能包含字母數字-,和_字元。
    • 後設資料金鑰不能以consul-字首開頭這是保留供內部使用的領事。
    • 後設資料值的長度必須介於0到512(含)之間。
    • 開頭的金鑰的後設資料值rfc1035-在DNS TXT請求中逐字編碼,否則後設資料kv對將根據RFC1464進行編碼
  • -pid-file - 此標誌為代理儲存其PID提供檔案路徑。這對傳送訊號很有用(例如,SIGINT 關閉代理或SIGHUP更新檢查確定

  • -protocol - 要使用的Consul協議版本。這預設為最新版本。這應該只在升級時設定您可以通過執行檢視Consul支援的協議版本consul -v

  • -raft-protocol - 它控制用於伺服器通訊的內部版本的Raft一致性協議。必須將其設定為3才能訪問自動駕駛儀功能,但不包括cleanup_dead_serversConsul 1.0.0及更高版本預設為3(以前預設為2)。有關 詳細資訊,請參閱 Raft協議版本相容性

  • -raft-snapshot-threshold - 這將控制儲存到磁碟的快照之間的最小數量的木筏提交條目。這是一個很少需要更改的低階引數。遇到磁碟IO過多的非常繁忙的群集可能會增加此值以減少磁碟IO,並最大限度地減少所有伺服器同時進行快照的機會。由於日誌會變得更大並且raft.db檔案中的空間直到下一個快照才能被回收,所以增加這一點會使磁碟空間與磁碟IO之間的交易關閉。如果由於需要重播更多日誌而導致伺服器崩潰或故障切換時間延長,伺服器可能需要更長時間才能恢復。在Consul 1.1.0和更高版本中,這個預設值為16384,在之前的版本中它被設定為8192。

  • -raft-snapshot-interval - 控制伺服器檢查是否需要將快照儲存到磁碟的頻率。他是一個很少需要改變的低階引數。遇到磁碟IO過多的非常繁忙的群集可能會增加此值以減少磁碟IO,並最大限度地減少所有伺服器同時進行快照的機會。由於日誌會變得更大並且raft.db檔案中的空間直到下一個快照才能被回收,所以增加這一點會使磁碟空間與磁碟IO之間的交易關閉。如果由於需要重播更多日誌而導致伺服器崩潰或故障切換時間延長,伺服器可能需要更長時間才能恢復。在Consul 1.1.0及更高版本中,這個預設設定為30s,並且在之前的版本中設定為5s

  • -recursor - 指定上游DNS伺服器的地址。該選項可以提供多次,功能上與recursors配置選項等效

  • -rejoin - 提供時,領事將忽略先前的休假,並在開始時嘗試重新加入叢集。預設情況下,Consul將休假視為永久意圖,並且在啟動時不會再嘗試加入叢集。該標誌允許先前的狀態用於重新加入群集。

  • -segment - (僅限企業)此標誌用於設定代理所屬網段的名稱。代理只能加入其網段內的其他代理並與其通訊。有關更多詳細資訊,請參閱網路細分指南預設情況下,這是一個空字串,它是預設的網段。

  • -server - 此標誌用於控制代理是否處於伺服器或客戶端模式。提供時,代理將充當領事伺服器。每個Consul叢集必須至少有一個伺服器,理想情況下每個資料中心不超過5個。所有伺服器都參與Raft一致性演算法,以確保事務以一致的,可線性化的方式進行。事務修改所有伺服器節點上維護的叢集狀態,以確保節點發生故障時的可用性。伺服器節點還參與其他資料中心中伺服器節點的WAN八卦池。伺服器充當其他資料中心的閘道器,並根據需要轉發流量。

  • -non-voting-server - (僅限企業)此標誌用於使伺服器不參與Raft仲裁,並使其僅接收資料複製流。在需要大量讀取伺服器的情況下,這可用於將讀取可伸縮性新增到群集。

  • -syslog - 該標誌啟用記錄到系統日誌。這僅在Linux和OSX上受支援。如果在Windows上提供,將會導致錯誤。

  • -ui - 啟用內建的Web UI伺服器和所需的HTTP路由。這消除了將Consul Web UI檔案與二進位制檔案分開維護的需要。

  • -ui-dir - 此標誌提供包含Consul的Web UI資源的目錄。這將自動啟用Web UI。目錄必須對代理可讀。從Consul版本0.7.0及更高版本開始,Web UI資產包含在二進位制檔案中,因此不再需要此標誌; 僅指定-ui標誌就足以啟用Web UI。指定'-ui'和'-ui-dir'標誌將導致錯誤。

»配置檔案

除了命令列選項之外,配置還可以放入檔案中。在某些情況下,這可能更容易,例如使用配置管理系統配置Consul時。

配置檔案是JSON格式的,使得它們易於被人類和計算機讀取和編輯。該配置被格式化為一個單獨的JSON物件,並在其中進行配置。

配置檔案不僅用於設定代理,還用於提供檢查和服務定義。這些用於向其他群集宣佈系統伺服器的可用性。它們分別在檢查配置和 服務配置下分別記錄。服務和檢查定義支援在重新載入期間進行更新。

»示例配置檔案

{
  "datacenter": "east-aws",
  "data_dir": "/opt/consul",
  "log_level": "INFO",
  "node_name": "foobar",
  "server": true,
  "watches": [
    {
        "type": "checks",
        "handler": "/usr/bin/health-check-handler.sh"
    }
  ],
  "telemetry": {
     "statsite_address": "127.0.0.1:2180"
  }
}

»示例配置檔案,帶有TLS

{
  "datacenter": "east-aws",
  "data_dir": "/opt/consul",
  "log_level": "INFO",
  "node_name": "foobar",
  "server": true,
  "addresses": {
    "https": "0.0.0.0"
  },
  "ports": {
    "https": 8080
  },
  "key_file": "/etc/pki/tls/private/my.key",
  "cert_file": "/etc/pki/tls/certs/my.crt",
  "ca_file": "/etc/pki/tls/certs/ca-bundle.crt"
}

尤其請參閱ports設定的使用

"ports": {
  "https": 8080
}

除非https已為埠分配了埠號,否則Consul將不會為HTTP API啟用TLS > 0

»配置金鑰參考

  • acl_datacenter - 這指定了對ACL資訊具有權威性的資料中心。必須提供它才能啟用ACL。所有伺服器和資料中心必須就ACL資料中心達成一致。將它設定在伺服器上是叢集級別強制執行所需的全部功能,但是為了使API正確地從客戶端轉發,它必須在其上進行設定。在Consul 0.8和更高版本中,這也可以實現ACL的代理級執行。有關更多詳細資訊,請參閱ACL指南

  • acl_default_policy - “允許”或“否認”; 預設為“允許”。預設策略在沒有匹配規則時控制令牌的行為。在“允許”模式下,ACL是一個黑名單:允許任何未被明確禁止的操作。在“拒絕”模式下,ACL是白名單:任何未明確允許的操作都會被阻止。注意:在您設定acl_datacenter 為啟用ACL支援之前,這不會生效

  • acl_down_policy - “允許”,“拒絕”或“擴充套件快取”; “擴充套件快取”是預設值。如果無法從令牌acl_datacenter或領導者節點讀取令牌策略,則應用停機策略。在“允許”模式下,允許所有操作,“拒絕”限制所有操作,“擴充套件快取”允許使用任何快取ACL,忽略其TTL值。如果使用非快取ACL,“extend-cache”就像“拒絕”一樣。

  • acl_agent_master_token- 用於訪問需要代理讀取或寫入許可權的代理端點或節點讀取許可權,即使Consul伺服器不存在以驗證任何令牌。這應該只在執行中斷時使用,應用程式通常會使用常規ACL令牌。這是在Consul 0.7.2中新增的,只有在acl_enforce_version_8設定為true 時才會使用 有關更多詳細資訊,請參閱 ACL Agent Master Token

  • acl_agent_token - 用於客戶端和伺服器執行內部操作。如果沒有指定,那麼 acl_token將被使用。這是在領事0.7.2中新增的。

    該令牌至少必須具有對其將註冊的節點名稱的寫入訪問許可權,以便設定目錄中的任何節點級別資訊,例如後設資料或節點的標記地址。還有其他地方使用了這個令牌,請參閱ACL代理令牌 瞭解更多詳情。

  • acl_enforce_version_8 - 用於客戶端和伺服器,以確定在Consul 0.8之前預覽新ACL策略是否應該執行。在Consul 0.7.2中新增,Consul版本在0.8之前預設為false,在Consul 0.8和更高版本中預設為true。這有助於在執行開始前允許策略就位,從而輕鬆過渡到新的ACL功能。有關更多詳細資訊,請參閱ACL指南

  • acl_master_token- 僅用於伺服器acl_datacenter如果該令牌不存在,將使用管理級許可權建立該令牌。它允許運營商使用眾所周知的令牌ID引導ACL系統。

    acl_master_token當伺服器獲取叢集領導只安裝。如果您想要安裝或更改acl_master_token,請acl_master_token 在所有伺服器的配置中設定新值一旦完成,重新啟動當前領導者以強制領導人選舉。如果acl_master_token未提供,則伺服器不會建立主令牌。當你提供一個值時,它可以是任何字串值。使用UUID將確保它看起來與其他標記相同,但並非絕對必要。

  • acl_replication_token- 僅用於acl_datacenter執行Consul 0.7或更高版本以外的伺服器如果提供,這將啟用使用此令牌的ACL複製來檢索ACL並將其複製到非權威本地資料中心。在Consul 0.9.1及更高版本中,您可以啟用ACL複製enable_acl_replication ,然後使用每臺伺服器上代理令牌API設定令牌如果acl_replication_token在配置中設定,它將自動設定enable_acl_replication為true以實現向後相容。

    如果存在影響授權資料中心的分割槽或其他中斷,並且 acl_down_policy設定為“extend-cache”,則可以使用複製的ACL集在中斷期間解析不在快取中的令牌。有關更多詳細資訊,請參閱 ACL指南複製部分。

  • acl_token - 提供時,代理向Consul伺服器發出請求時將使用此令牌。通過提供“?token”查詢引數,客戶端可以基於每個請求重寫此令牌。如果未提供,則會使用對映到“匿名”ACL策略的空令牌。

  • acl_ttl - 用於控制ACL的生存時間快取。預設情況下,這是30秒。此設定會對效能產生重大影響:減少重新整理次數會增加重新整理次數,同時減少重新整理次數。但是,由於快取不會主動失效,所以ACL策略可能會過時到TTL值。

  • addresses - 這是一個允許設定繫結地址的巢狀物件。在Consul 1.0和更高版本中,這些可以設定為要繫結的空間分隔的地址列表 ,也可以將可以解析為多個地址go-sockaddr模板設定為空格分隔列表

    http支援繫結到Unix域套接字。套接字可以在表單中指定unix:///path/to/socket一個新的域套接字將在給定的路徑上建立。如果指定的檔案路徑已經存在,Consul將嘗試清除該檔案並在其位置建立域套接字。套接字檔案的許可權可以通過unix_socketsconfig結構調整

    在Unix套接字介面上執行Consul agent命令時,使用 -http-addr引數指定套接字的路徑。您也可以將所需的值放在CONSUL_HTTP_ADDR環境變數中。

    對於TCP地址,變數值應該是埠的IP地址。例如:10.0.0.1:8500而不是10.0.0.1但是,ports在配置檔案中定義埠時,埠將在結構中單獨設定 

    以下鍵有效:

    • dns - DNS伺服器。預設為client_addr
    • http - HTTP API。預設為client_addr
    • https - HTTPS API。預設為client_addr
  • advertise_addr等同於-advertise命令列標誌

  • serf_wan等同於-serf-wan-bind命令列標誌

  • serf_lan等同於-serf-lan-bind命令列標誌

  • advertise_addr_wan等同於-advertise-wan命令列標誌

  • autopilot在Consul 0.8中增加的這個物件允許設定多個子鍵,這些子鍵可以為Consul伺服器配置操作友好的設定。有關自動駕駛儀的更多資訊,請參閱自動駕駛儀指南

    以下子鍵可用:

    • cleanup_dead_servers - 這可以控制定期和每當將新伺服器新增到群集時自動刪除已死的伺服器節點。預設為true
    • last_contact_threshold - 在被認為不健康之前,控制伺服器在沒有與領導聯絡的情況下可以走的最長時間。必須是持續時間值,例如10s預設為200ms
    • max_trailing_logs - 控制伺服器在被認為不健康之前可以跟蹤領導者的最大日誌條目數。預設為250。
    • server_stabilization_time - 在新增到叢集之前,控制伺服器在“健康”狀態下必須穩定的最短時間。只有當所有伺服器執行Raft協議版本3或更高時才會生效。必須是持續時間值,例如30s預設為10s
    • redundancy_zone_tag- (僅限企業)-node-meta當Autopilot將伺服器分為多個區域進行冗餘時,這將控制使用金鑰。每個區域中只有一臺伺服器可以同時成為投票成員。如果留空(預設),則此功能將被禁用。
    • disable_upgrade_migration- (僅限企業)如果設定為true,此設定將禁用Consul Enterprise中的Autopilot升級遷移策略,等待足夠的新版本伺服器新增到群集,然後再將其中的任何一個升級為選民。預設為false
  • bootstrap等同於 -bootstrap命令列標誌

  • bootstrap_expect等同於-bootstrap-expect命令列標誌

  • bind_addr等同於 -bind命令列標誌

  • ca_file這為PEM編碼的證照頒發機構提供了一個檔案路徑。證照頒發機構用於使用適當的verify_incoming或 verify_outgoing標誌檢查客戶端和伺服器連線的真實性

  • ca_path這提供了PEM編碼證照頒發機構檔案目錄的路徑。這些證照頒發機構用於檢查具有適當verify_incoming或 verify_outgoing標誌的客戶端和伺服器連線的真實性

  • cert_file這提供了一個PEM編碼證照的檔案路徑。證照提供給客戶或伺服器來驗證代理的真實性。它必須隨同提供key_file

  • check_update_interval 此間隔控制檢查穩定狀態檢查的輸出與伺服器同步的頻率。預設情況下,它被設定為5分鐘(“5米”)。許多處於穩定狀態的檢查會導致每次執行的輸出略有不同(時間戳等),從而導致不斷的寫入。該配置允許推遲檢查輸出的同步,以減少給定時間間隔的寫入壓力。如果支票更改狀態,則新狀態和相關輸出立即同步。要禁用此行為,請將該值設定為“0s”。

  • client_addr等同於 -client命令列標誌

  • datacenter等同於 -datacenter命令列標誌

  • data_dir等同於 -data-dir命令列標誌

  • disable_anonymous_signature禁止使用更新檢查提供匿名簽名以進行重複資料刪除。disable_update_check

  • disable_host_node_id 等同於-disable-host-node-id命令列標誌

  • disable_remote_exec 禁用對遠端執行的支援。設定為true時,代理將忽略任何傳入的遠端exec請求。在0.8版之前的Consul版本中,這個預設為false。在Consul 0.8中,預設值更改為true,以使遠端exec選擇加入而不是選擇退出。

  • disable_update_check 禁用自動檢查安全公告和新版本釋出。這在Consul Enterprise中被禁用。

  • discard_check_output 在儲存之前丟棄健康檢查的輸出。這減少了健康檢查具有易失性輸出(如時間戳,程式ID,...)的環境中Consul raft日誌的寫入次數。

    • discovery_max_stale - 為所有服務發現HTTP端點啟用陳舊請求。這相當於max_staleDNS請求的 配置。如果此值為零(預設值),則將所有服務發現HTTP端點轉發給領導者。如果此值大於零,則任何Consul伺服器都可以處理服務發現請求。如果領隊伺服器超過領導者discovery_max_stale,則將對領導者重新評估該查詢以獲得更多最新結果。Consul代理還會新增一個新的 X-Consul-Effective-Consistency響應標頭,用於指示代理是否執行了陳舊的讀取。discover-max-stale 在Consul 1.0.7中引入,作為Consul操作員在代理級別強制來自客戶端的陳舊請求的方式,預設值為0,與先前Consul版本中的預設一致性行為相匹配。
  • dns_config此物件允許設定多個可以調節DNS查詢服務的子金鑰。有關更多詳細資訊,請參閱DNS快取指南 

    以下子鍵可用:

    • allow_stale - 啟用DNS資訊的陳舊查詢。這允許任何Consul伺服器而不僅僅是領導者來服務請求。這樣做的好處是您可以通過Consul伺服器獲得線性讀取可擴充套件性。在0.7之前的Consul版本中,預設為false,意味著所有請求都由領導者提供服務,從而提供更強的一致性,但吞吐量更低,延遲更高。在Consul 0.7及更高版本中,為了更好地利用可用伺服器,預設為true。
    • max_stale- 什麼時候allow_stale 被指定,這是用來限制陳舊結果被允許的。如果領隊伺服器超過領導者max_stale,則將對領導者重新評估該查詢以獲得更多最新結果。在領事0.7.1之前,這預設為5秒; 在Consul 0.7.1和更高版本中,預設為10年(“87600h”),這有效地允許任何伺服器回答DNS查詢,不管它多麼陳舊。實際上,伺服器通常只比領導者短几毫秒,所以這可以讓Consul在沒有領導者可以選舉的長時間停工場景中繼續提供請求。
    • node_ttl - 預設情況下,這是“0”,因此所有節點查詢均以0 TTL值提供服務。通過設定此值可以啟用節點查詢的DNS快取。這應該用“s”字尾表示第二個或“m”表示分鐘。
    • service_ttl - 這是一個允許使用每項服務策略設定TTL服務查詢的子物件。當沒有特定的服務可用於服務時,可以使用“*”萬用字元服務。預設情況下,所有服務均以0 TTL值提供服務。通過設定此值可啟用服務查詢的DNS快取。
    • enable_truncate - 如果設定為true,則將返回超過3條記錄或超過適合有效UDP響應的UDP DNS查詢將設定截斷標誌,指示客戶端應使用TCP重新查詢以獲得滿載記錄集。
    • only_passing - 如果設定為true,任何健康檢查警告或嚴重的節點將被排除在DNS結果之外。如果為false,則預設情況下,只有健康檢查失敗的節點將被排除。對於服務查詢,會考慮節點自身的執行狀況檢查以及特定於服務的檢查。例如,如果某個節點的健康狀況檢查非常重要,則該節點上的所有服務都將被排除,因為它們也被視為關鍵。
    • recursor_timeout - Consul在遞迴查詢上游DNS伺服器時使用的超時。檢視recursors 更多細節。預設值是2s。這在Consul 0.7和更高版本中可用。
    • disable_compression - 如果設定為true,則不會壓縮DNS響應。Consul 0.7中預設新增並啟用了壓縮。
    • udp_answer_limit - 限制包含在基於UDP的DNS響應的答案部分中的資源記錄數。此引數僅適用於小於512位元組的UDP DNS查詢。此設定已棄用,並由Consul 1.0.7替換a_record_limit
    • a_record_limit - 限制A,AAAA或ANY DNS響應(包括TCP和UDP)答案部分中包含的資源記錄數。在回答問題時,Consul將使用匹配主機的完整列表,隨機隨機洗牌,然後限制答案的數量a_record_limit(預設:無限制)。此限制不適用於SRV記錄。

    實施和實施RFC 3484第6節規則9的環境中(即DNS答案總是被排序並因此決不是隨機的),客戶端可能需要設定該值1以保留預期的隨機分配行為(注意: RFC 3484已被過時 RFC 6724,因此它應該越來越不常見,需要用現代的解析器來改變這個值)。

  • domain等同於 -domain命令列標誌

  • enable_acl_replication在Consul伺服器上設定時,啟用ACL複製而不必通過設定複製令牌acl_replication_token相反,啟用ACL複製,然後在每臺伺服器上使用代理令牌API引入令牌檢視acl_replication_token更多細節。

  • enable_agent_tls_for_checks 當設定時,使用代理人的TLS配置的一個子集(key_filecert_fileca_fileca_path,和 server_name),以建立HTTP客戶端的HTTP健康檢查。這允許使用代理的憑證檢查需要雙向TLS的服務。這是在Consul 1.0.1中新增的,預設為false。

  • enable_debug設定後,啟用一些額外的除錯功能。目前,這僅用於設定執行時概要分析HTTP端點。

  • enable_script_checks等同於 -enable-script-checks命令列標誌

  • enable_syslog等同於-syslog命令列標誌

  • encrypt等同於 -encrypt命令列標誌

  • encrypt_verify_incoming - 這是一個可選引數,可用於禁用對輸入八卦執行加密,以便在正在執行的群集上從未加密的檔案升級到加密的八卦。有關更多資訊,請參閱此部分預設為true。

  • encrypt_verify_outgoing - 這是一個可選引數,可用於禁用強制執行傳出八卦的加密,以便在正在執行的群集上從未加密的檔案轉換為加密的八卦檔案。有關更多資訊,請參閱此部分預設為true。

  • disable_keyring_file- 相當於 -disable-keyring-file命令列標誌

  • key_file這提供了一個PEM編碼私鑰的檔案路徑。金鑰與證照一起用於驗證代理的真實性。這必須隨同提供cert_file

  • http_config 該物件允許為HTTP API設定選項。

    以下子鍵可用:

    • block_endpoints 此物件是要在代理程式上阻止的HTTP API端點字首的列表,預設為空列表,表示所有端點都已啟用。與此列表中的一個條目具有共同字首的任何端點將被阻止,並且在訪問時將返回403響應程式碼。例如,為了阻斷所有V1 ACL端點,此設定為 ["/v1/acl"],這將阻止/v1/acl/create/v1/acl/update以及與開始其它ACL端點/v1/acl這隻適用於API端點,而不是,/ui或者 /debug必須禁用它們各自的配置選項。任何使用禁用端點的CLI命令都將不再起作用。對於更通用的訪問控制,Consul的ACL系統應該被使用,但是這個選項對於完全去除對HTTP API端點的訪問是有用的,或者對特定的代理來說是非常有用的。這在Consul 0.9.0及更高版本中可用。
    • response_headers 該物件允許向HTTP API響應新增標題。例如,可以使用以下配置在HTTP API端點上啟用 CORS

          {
            "http_config": {
              "response_headers": {
                "Access-Control-Allow-Origin": "*"
              }
            }
          }
      
  • leave_on_terminate如果啟用,當代理收到TERM訊號時,它將向Leave群集的其餘部分傳送訊息並正常離開。此功能的預設行為根據代理是否作為客戶端或伺服器執行而不同(在Consul 0.7之前預設值被無條件設定為false)。在客戶端模式下的代理程式中,預設為true 伺服器模式的代理程式,對於伺服器模式中的代理程式,預設為false

  • limits在Consul 0.9.3及更高版本中可用,這是一個巢狀物件,用於配置代理執行的限制。目前,這隻適用於客戶端模式的代理,而不是Consul伺服器。以下引數可用:

    • rpc_rate - 通過將此代理允許為Consul伺服器發出的RPC請求的最大請求速率設定為每秒請求數,配置RPC速率限制器。預設為無限,這會禁用速率限制。
    • rpc_max_burst - 用於對RPC速率限制器進行再充電的令牌桶的大小。預設為1000個令牌,並且每個令牌都適用於對Consul伺服器的單個RPC呼叫。有關 令牌桶速率限制器如何操作的更多詳細資訊,請參閱https://en.wikipedia.org/wiki/Token_bucket
  • log_level等同於 -log-level命令列標誌

  • node_id等同於 -node-id命令列標誌

  • node_name等同於 -node命令列標誌

  • node_meta可用於Consul 0.7.3及更高版本,此物件允許將任意後設資料鍵/值對與本地節點相關聯,然後可用於過濾某些目錄端點的結果。有關更多資訊,請參閱 -node-meta命令列標誌

      {
        "node_meta": {
            "instance_type": "t2.medium"
        }
      }
    
  • performance在Consul 0.7和更高版本中可用,這是一個巢狀物件,允許調整Consul中不同子系統的效能。請參閱伺服器效能指南獲取更多詳細資訊 以下引數可用:

    • leave_drain_time - 伺服器在優雅休假期間居住的時間,以便允許對其他Consul伺服器重試請求。在正常情況下,這可以防止客戶在執行Consul伺服器滾動更新時遇到“無領導者”錯誤。這是在Consul 1.0中新增的。必須是持續時間值,例如10秒。預設為5秒。
    • raft_multiplier - Consul伺服器用於縮放關鍵Raft時間引數的整數乘法器。忽略該值或將其設定為0將使用下面描述的預設時間。較低的值用於收緊時間並提高靈敏度,而較高的值用於放鬆時間並降低靈敏度。調整這會影響Consul檢測領導者失敗並執行領導者選舉所花的時間,但需要更多的網路和CPU資源才能獲得更好的效能。

      預設情況下,Consul將使用適用於最小Consul伺服器的較低效能時序,當前相當於將此值設定為5(此預設值可能會在未來版本的Consul中進行更改,具體取決於目標最小伺服器配置檔案是否更改)。將此值設定為1會將Raft配置為其最高效能模式,相當於Consul在0.7之前的預設時間,並且建議用於生產Consul伺服器有關調整此引數的更多詳細資訊,請參閱上次接觸時間的說明。最大允許值是10。

    • rpc_hold_timeout - 客戶或伺服器在領導者選舉期間將重試內部RPC請求的持續時間。在正常情況下,這可以防止客戶遇到“無領導者”的錯誤。這是在Consul 1.0中新增的。必須是持續時間值,例如10秒。預設為7秒。

  • ports 這是一個巢狀物件,允許為以下鍵設定繫結埠:

    • dns - DNS伺服器,-1禁用。預設8600。
    • http - HTTP API,-1禁用。預設8500。
    • https - HTTPS API,-1禁用。預設-1(禁用)。
    • serf_lan - Serf LAN埠。預設8301。
    • serf_wan - Serf WAN埠。預設8302.設定為-1以禁用。注意:這將禁用不推薦的WAN聯合。各種目錄和廣域網相關端點將返回錯誤或空的結果。
    • server - 伺服器RPC地址。預設8300。
  • protocol等同於 -protocol命令列標誌

  • raft_protocol等同於 -raft-protocol命令列標誌

  • raft_snapshot_threshold等同於 -raft-snapshot-threshold命令列標誌

  • raft_snapshot_interval等同於 -raft-snapshot-interval命令列標誌

  • reap這將控制Consul的子程式自動收集,如果Consul在Docker容器中以PID 1的形式執行,這將非常有用。如果沒有指定,則Consul會自動收集子程式,如果它檢測到它正在以PID 1執行。如果設定為true或false,則無論Consul的PID如何,它都會控制收割(強制分別開啟或關閉) 。Consul 0.7.1中刪除了該選項。對於Consul的更高版本,您將需要使用包裝器收穫流程,請參閱 Consul Docker影像入口點指令碼 以獲取示例。如果您使用的是Docker 1.13.0或更高版本,則可以使用該命令的新--init選項,docker run並且docker將啟用PID 1的初始化程式,以便為容器收集子程式。有關Docker文件的更多資訊

  • reconnect_timeout這將控制從叢集中徹底刪除發生故障的節點需要多長時間。預設值為72小時,建議將其設定為至少為節點或網路分割槽的預期可恢復的最大停機時間的兩倍。警告:將此時間設定得太低可能會導致Consul伺服器在擴充套件節點故障或分割槽過程中從法定數中刪除,這可能會使群集恢復複雜化。該值是一個帶單位字尾的時間,可以是秒,分鐘或小時的“s”,“m”,“h”。該值必須> = 8小時。

  • reconnect_timeout_wan這是reconnect_timeout引數的WAN等效項,用於控制從WAN池中完全刪除發生故障的伺服器所需的時間。這也預設為72小時,並且必須> 8小時。

  • recursors此標誌提供用於遞迴解析查詢(如果它們不在Consul的服務域內)的上游DNS伺服器的地址。例如,節點可以直接使用Consul作為DNS伺服器,並且如果該記錄不在“領事”範圍內。域,查詢將在上游解決。從Consul 1.0.1開始,遞迴可以作為IP地址或go-sockaddr模板提供。IP地址按順序解析,重複項被忽略。

  • rejoin_after_leave等同於-rejoin命令列標誌

  • retry_join- 相當於-retry-join命令列標誌。

  • retry_interval等同於 -retry-interval命令列標誌

  • retry_join_wan等同於 -retry-join-wan命令列標誌每次嘗試加入廣域網地址列表,retry_interval_wan直到至少有一個加入工作。

  • retry_interval_wan等同於 -retry-interval-wan命令列標誌

  • segment(僅限企業)等同於 -segment命令列標誌

  • segments(僅限企業)這是一個巢狀物件列表,它允許設定網段的繫結/通告資訊。這隻能在伺服器上設定。有關更多詳細資訊,請參閱 網路細分指南

    • name - 細分受眾群的名稱。必須是長度介於1到64個字元之間的字串。
    • bind - 用於分組的八卦圖層的繫結地址。-bind如果未提供,則預設為該值。
    • port - 用於細分的八卦圖層的埠(必需)。
    • advertise - 用於分組的八卦圖層的廣告地址。-advertise如果未提供,則預設為該值。
    • rpc_listener- 如果為true,則會-bind在rpc埠上的該段地址上啟動單獨的RPC偵聽器只有段的繫結地址與地址不同時才有效 -bind預設為false。
  • server等同於 -server命令列標誌

  • non_voting_server- 相當於 -non-voting-server命令列標誌

  • server_name提供時,將覆蓋node_nameTLS證照。它可以用來確保證照名稱與我們宣告的主機名相匹配。

  • session_ttl_min 允許的最小會話TTL。這確保會話不會在TTL小於指定的限制時建立。建議將此限制保持在預設值以上,以鼓勵客戶傳送頻繁的心跳。預設為10秒。

  • skip_leave_on_interrupt這類似於leave_on_terminate但僅影響中斷處理。當Consul收到一箇中斷訊號(比如在終端上打Control-C)時,Consul會優雅地離開叢集。將其設定為true禁用該行為。此功能的預設行為根據代理是否作為客戶端或伺服器執行而不同(在Consul 0.7之前預設值被無條件設定為false)。在客戶端模式下的代理上,預設為false伺服器模式下的代理,並且預設為true (即伺服器上的Ctrl-C將伺服器保留在群集中,因此是仲裁,並且客戶端上的Ctrl-C將優雅地離開)。

  • start_join-join啟動時指定節點地址的字串陣列請注意,retry_join在自動執行Consul叢集部署時,使用 可能更適合幫助緩解節點啟動競爭條件。

  • start_join_wan-join-wan啟動時指定WAN節點地址的字串陣列

  • telemetry 這是一個巢狀物件,用於配置Consul傳送其執行時遙測的位置,幷包含以下鍵:

    • circonus_api_token 用於建立/管理支票的有效API令牌。如果提供,則啟用度量標準管理。
    • circonus_api_app 與API令牌關聯的有效應用名稱。預設情況下,它被設定為“consul”。
    • circonus_api_url 用於聯絡Circonus API的基本URL。預設情況下,它被設定為“ https://api.circonus.com/v2 ”。
    • circonus_submission_interval 指標提交給Circonus的時間間隔。預設情況下,它被設定為“10s”(十秒)。
    • circonus_submission_urlcheck.config.submission_url來自先前建立的HTTPTRAP檢查的Check API物件 的欄位。
    • circonus_check_id從先前建立的HTTPTRAP檢查中 檢查ID(不檢查包)。check._cidCheck API物件中欄位的數字部分
    • circonus_check_force_metric_activation 強制啟用已存在且當前未啟用的度量標準。如果啟用了支票管理,則預設行為是在遇到新的指標時新增新指標。如果該指標已經存在於支票中,則不會被啟用。此設定將覆蓋該行為。預設情況下,它被設定為false。
    • circonus_check_instance_id 唯一標識來自此例項的度量標準當它們在基礎架構內移動時,它可用於維護度量連續性,即瞬態或短暫例項。預設情況下,它被設定為主機名:應用程式名稱(例如“host123:consul”)。
    • circonus_check_search_tag 一個特殊的標籤,當與例項ID結合使用時,有助於在未提供提交URL或檢查ID時縮小搜尋結果的範圍。預設情況下,它被設定為service:application name(例如“service:consul”)。
    • circonus_check_display_name 指定一個名稱以在建立時進行檢查。該名稱顯示在Circonus UI Checks列表中。可用於Consul 0.7.2及更高版本。
    • circonus_check_tags 用逗號分隔的附加標籤列表在建立時新增到支票中。可用於Consul 0.7.2及更高版本。
    • circonus_broker_id 建立新支票時使用的特定Circonus Broker的ID。broker._cidBroker API物件欄位的數字部分如果啟用指標管理並且未提供提交URL和檢查ID,則將嘗試使用例項ID和搜尋標記搜尋現有檢查。如果找不到,則會建立一個新的HTTPTRAP檢查。預設情況下,不會使用此選項,並選擇隨機企業代理或預設的Circonus Public Broker。
    • circonus_broker_select_tag 當未提供經紀人程式碼時,將使用特殊標籤選擇Circonus經紀人。這個最好的用途是作為代理應該基於針對所使用的提示,其中該特定的例項正在執行(例如一個特定的地理位置或資料中心,DC:SFO)。預設情況下,這是留空,不使用。
    • disable_hostname 這將控制是否在計算機主機名的前面加上執行時間遙測,預設為false。
    • dogstatsd_addr這提供了格式中DogStatsD例項的地址host:portDogStatsD是statsd協議相容的風格,增加了用標籤和事件資訊修飾指標的功能。如果提供,領事將傳送各種遙測資訊到該例項進行聚合。這可以用來捕獲執行時資訊。
    • dogstatsd_tags這提供了將被新增到傳送到DogStatsD的所有遙測包的全域性標籤列表。它是一個字串列表,其中每個字串看起來像“my_tag_name:my_tag_value”。
    • filter_default 這將控制是否允許過濾器未指定的度量標準。預設為true,這將允許在沒有提供過濾器時的所有指標。如果設定為false不使用過濾器,則不會傳送指標。
    • metrics_prefix 寫入所有遙測資料時使用的字首。預設情況下,它被設定為“consul”。這是在Consul 1.0中新增的。對於之前版本的Consul,使用statsite_prefix相同結構中的配置選項由於此字首適用於所有遙測提供商,因此它已重新命名為Consul 1.0,而不僅僅是statsite。
    • prefix_filter 這是一個過濾規則列表,適用於通過字首允許/遮蔽指標,格式如下:

      [
        "+consul.raft.apply",
        "-consul.http",
        "+consul.http.GET"
      ]
      

      前導的“ + ”將使用給定字首的任何度量標準,並且前導“ - ”將阻止它們。如果兩個規則之間有重疊,則更具體的規則優先。如果多次列出相同的字首,則阻塞將優先。

    • prometheus_retention_time 如果該值大於0s(預設值),則可以使Prometheus匯出度量標準。持續時間可以使用持續時間語義來表示,並將在指定的時間內彙總所有計數器(這可能會影響Consul的記憶體使用情況)。此引數的價值至少是普羅米修斯刮擦間隔的2倍,但您也可能需要很長的保留時間,例如幾天(例如744h才能保留至31天)。使用prometheus獲取指標然後可以使用/v1/agent/metrics?format=prometheusURL 執行,或者通過傳送值為Accept的Accept頭來text/plain; version=0.0.4; charset=utf-8 執行/v1/agent/metrics(如普羅米修斯所做的那樣)。格式與普羅米修斯本身相容。在此模式下執行時,建議啟用此選項disable_hostname以避免使用主機名的字首度量標準。

    • statsd_address這以格式提供statsd例項的地址host:port如果提供,領事將傳送各種遙測資訊到該例項進行聚合。這可以用來捕獲執行時資訊。這僅傳送UDP資料包,可以與statsd或statsite一起使用。

    • statsite_address這提供了格式中的一個statsite例項的地址host:port如果提供,領事將彙集各種遙測資訊到該例項。這可以用來捕獲執行時資訊。這通過TCP流,只能用於statsite。

  • syslog_facility何時 enable_syslog提供,這將控制向哪個設施傳送訊息。預設情況下,LOCAL0將被使用。

  • tls_min_version在Consul 0.7.4中新增,它指定了TLS的最低支援版本。接受的值是“tls10”,“tls11”或“tls12”。這預設為“tls10”。警告:TLS 1.1及更低版本通常被認為不太安全; 避免使用這些如果可能。這將在Consul 0.8.0中更改為預設值“tls12”。

  • tls_cipher_suites在Consul 0.8.2中新增,它將支援的密碼組列表指定為逗號分隔列表。原始碼中提供了所有支援的密碼套件列表

  • tls_prefer_server_cipher_suites 在Consul 0.8.2中新增,這將導致Consul更喜歡伺服器的密碼套件而不是客戶端密碼套件。

  • translate_wan_addrs如果設定為true,Consul 在為遠端資料中心中的節點提供DNS和HTTP請求時,會優先使用配置的WAN地址這允許使用其本地地址在其自己的資料中心內訪問該節點,並使用其WAN地址從其他資料中心到達該節點,這在混合網路的混合設定中很有用。這是預設禁用的。

    從Consul 0.7和更高版本開始,響應HTTP請求的節點地址在查詢遠端資料中心中的節點時也將優選節點配置的WAN地址一個X-Consul-Translate-Addresses當翻譯被啟用,以幫助客戶知道地址可以被翻譯標題將出現在所有響應。TaggedAddresses響應中域也有一個lan地址,需要該地址的知識,無論翻譯的客戶。

    以下端點轉換地址:

  • ui- 相當於-ui 命令列標誌。

  • ui_dir- 相當於 -ui-dir命令列標誌。從Consul版本0.7.0及更高版本開始,此配置金鑰不是必需的。指定此配置鍵將啟用Web UI。沒有必要指定ui-dir和ui。指定兩者都會導致錯誤。

  • unix_sockets - 這可以調整Consul建立的Unix域套接字檔案的所有權和許可權。只有在HTTP地址配置了unix://字首時才使用域套接字

    需要注意的是,這個選項可能對不同的作業系統有不同的影響。Linux通常會觀察套接字檔案許可權,而許多BSD變體會忽略套接字檔案本身的許可權。在特定的發行版上測試此功能非常重要。此功能目前在Windows主機上無法使用。

    以下選項在此構造內有效,並全面應用於Consul建立的所有套接字:

    • user - 將擁有套接字檔案的使用者的名稱或ID。
    • group - 套接字檔案的組ID標識。該選專案前僅支援數字ID。
    • mode - 在檔案上設定的許可權位。
  • verify_incoming- 如果設定為true,Consul要求所有傳入連線都使用TLS,並且客戶端提供證照頒發機構從ca_fileor中簽名的證照ca_path這適用於伺服器RPC和HTTPS API。預設情況下,這是錯誤的,Consul不會強制使用TLS或驗證客戶的真實性。

  • verify_incoming_rpc- 如果設定為true,Consul要求所有傳入的RPC連線都使用TLS,並且客戶端提供由證照頒發機構從ca_fileor中簽名的證照ca_path預設情況下,這是錯誤的,Consul不會強制使用TLS或驗證客戶的真實性。

  • verify_incoming_https- 如果設定為true,則Consul要求所有傳入的HTTPS連線都使用TLS,並且客戶端提供由證照頒發機構從ca_fileor中簽名的證照ca_path預設情況下,這是錯誤的,Consul不會強制使用TLS或驗證客戶的真實性。要啟用HTTPS API,您必須通過ports配置定義HTTPS埠預設情況下,HTTPS被禁用。

  • verify_outgoing- 如果設定為true,則Consul要求所有傳出連線都使用TLS,並且伺服器提供由證照頒發機構從ca_fileor中簽名的證照ca_path預設情況下,這是錯誤的,Consul不會使用TLS進行傳出連線。這適用於客戶端和伺服器,因為兩者都會建立傳出連線。

  • verify_server_hostname - 如果設定為true,則Consul會驗證所有傳出連線,即伺服器提供的TLS證照與“server。<datacenter>。<domain>”主機名匹配。這意味著verify_outgoing預設情況下,這是錯誤的,並且Consul不驗證證照的主機名,只驗證它是由受信任的CA簽署的。此設定對於防止受損客戶端作為伺服器重新啟動很重要,從而能夠執行MITM攻擊或新增為Raft對等裝置。這在0.5.1中是新的。

  • watches - Watches是手錶規範的列表,允許在更新特定資料檢視時自動呼叫外部程式。有關更多詳情,請參閱 手錶文件手錶可以在配置重新載入時修改。

»使用的埠

Consul最多需要6個不同的埠才能正常工作,有些使用TCP,UDP或兩種協議。下面我們記錄每個埠的要求。

  • 伺服器RPC(預設8300)。這由伺服器用來處理來自其他代理的傳入請求。僅限TCP。

  • Serf LAN(預設8301)。這是用來處理區域網中的八卦。所有代理都需要。TCP和UDP。

  • Serf WAN(預設8302)。這被伺服器用來在WAN上閒聊到其他伺服器。TCP和UDP。從Consul 0.8開始,建議通過埠8302在LAN介面上為TCP和UDP啟用伺服器之間的連線,以及WAN加入氾濫功能。另見: Consul 0.8.0 CHANGELOGGH-3058

  • HTTP API(預設8500)。這被客戶用來與HTTP API交談。僅限TCP。

  • DNS介面(預設8600)。用於解析DNS查詢。TCP和UDP。

»可重新載入配置

重新載入配置不會重新載入所有配置專案。重新載入的專案包括:

謀膽並重

相關文章