Table of Contents
Consul 介紹
簡介
Consul 除了廣為熟知的自動發現功能外,近年來持續整合了 Service Mesh 以及 Zero Trust 的功能,提升安全性的同時,還可以降低網路設定的複雜度。
Consul 架構
Consul 的架構設計上使用相同的 Process 進行啟動,使用不同的設定檔即可讓節點成為不相同的腳色進行服務。
在一座 Datacenter 內主要由多台的 Server 組成 Cluster,並互相推選出 Leader 作為 Master,而其他的 Server node 則自動成為 Follower。當資料寫入到 Leader 後會快速的複寫到 Follower 中,並提供給 Client 進行查詢。
相較於 open source 中的功能,在 Enterperise 中甚至提供 Redundancy Zones 的功能進一步提高可用性。
如果在該 AZ 內的具有投票權的 Server 的服務死亡,會自動將該 AZ 內 non voting 的 Server 權限升級並替換成新的 Follower,如果該 AZ 全部離線,則會使用提其他 AZ 的 non voting 的 Server 進行替換。
系統需求
硬體需求
Size | CPU | Memory | Disk Capacity | Disk IO | Disk Throughput |
---|---|---|---|---|---|
Small | 2-4 core | 8-16 GB RAM | 100+ GB | 3000+ IOPS | 75+ MB/s |
Large | 8-16 core | 32-64 GB RAM | 200+ GB | 7500+ IOPS | 250+ MB/s |
Server agents 通常會使用 I/O Write 和 CPU read
注意:對於高工作負載,請確保硬碟支持大量 IOPS 以跟上快速的 Raft 日誌更新速率。
Network latency and bandwidth
latency and bandwidth
對於所有 Consul agent 之間使用 Lan gossip 發送的資料,必須滿足以下延遲要求:
- 所有流量的平均 RTT 不能超過 50 毫秒。
- 99% 的流量的 RTT 不能超過 100 毫秒。
Port and Protocal
Name | Port / Protocol | Source | Destination | Description |
---|---|---|---|---|
RPC | 8300 / TCP | All agents (client & server) | Server agents | Used by servers to handle incoming requests from other agents. |
Serf LAN | 8301 / TCP & UDP | All agents (client & server) | All agents (client & server) | Used to handle gossip in the LAN. Required by all agents. |
Serf WAN | 8302 / TCP & UDP | Server agents | Server agents | Used by server agents to gossip over the WAN to other server agents. Only used in multi-cluster environments. |
HTTP/HTTPS | 8500 & 8501 TCP | Localhost of client or server agent | Localhost of client or server agent | Used by clients to talk to the HTTP API. HTTPS is disabled by default. |
DNS | 8600 TCP & UDP | Localhost of client or server agent | Localhost of client or server agent | Used to resolve DNS queries. |
gRPC (Optional) | 8502 TCP | Envoy proxy | Client agent or server agent that manages the sidecar proxies service registration | Used to expose the xDS API to Envoy proxies. Disabled by default. |
Sidecar Proxy (Optional) | 21000 – 21255 TCP | All agents (client & server) | Client agent or server agent that manages the sidecar proxies service registration | Port range used for automatically assigned sidecar service registrations. |