功能
提供网格服务解决方案, 包括服务发现, 配置, 健康检查, 多数据中心, TLS 通信服务.
类似功能服务, 以及相关服务:
- ZooKeeper, doozerd, etcd
- Chef, Puppet
- Nagios, Sensu
- SkyDNS
- SmartStack
- Serf
- Eureka
- Istio
- Envoy
学习中心: learn.hashicorp.com
安装
三种安装方法: 预编译版本, 源码安装, docker.
docker, 预编译版本安装最方便, 基于加密的下载, SHA256 的校验保证安全.
源码安装是需要 Golang, Git 的支持的.
端口说明
需要开启 6 个端口:
- 8600 DNS 服务(TCP,UDP) 解析 DNS 查询
- 8500 HTTP API(TCP) 客户端沟通端口
- 8501 HTTPS API(默认不开启)
- 8502 gRPC API(默认不开启)
- 8301 LAN(TCP,UDP) 内网 gossip, 所有客户端都需要
- 8302 WAN(TCP,UDP) 外网服务器之间 gossip 通信,
- 8300 服务器 RPC 地址, 处理其他代理过来的查询
- 21000 最小 sidecar
- 21255 最大 sidecar
数据中心
支持客户端与服务器模式. 服务器负责运行共识协议, 存储集群状态. 客户端无状态, 严重依赖服务器节点.
运行与关闭
1 | consul agent -data-dir=/consul/data \ |
1 | kill -INT consul_pid |
核心概念
- Agent 代理
- Client 客户端
- Server 服务器
- DataCenter 数据中心
- Consensus 共识
- Gossip 协议, 由 Serf 实现该协议, 提供成员资格, 故障检测和事件广播
- LAN 局域网
- WAN 广域网
- RPC 远程调用