参考资料

  1. docker安装详细说明以及案例
  2. SapMachine 是 SAP 官方维护的 OpenJDK 发行版
  3. Docker基于Linux容器技术
  4. Apache Solr 是一个基于 Apache Lucene 构建的开源企业级搜索平台
  5. Vaultwarden 是 Bitwarden 密码管理器的轻量级
  6. Docker的安装与配置
  7. WordPress 是一个开源的内容管理系统
  8. Arch Linux 是一个轻量级、灵活的 Linux 发行版

Consul 简介

Consul 是 HashiCorp 公司开发的服务网格解决方案,提供服务发现健康检查键值存储多数据中心支持功能。基于 Raft 协议实现分布式一致性,支持跨平台运行。

核心特点

  1. 服务发现:支持 DNS/HTTP 接口查询服务状态

  2. 健康检查:主动监测服务健康状态

  3. KV 存储:分布式键值数据存储

  4. 多数据中心:原生支持多数据中心部署

  5. 安全通信:TLS 证书加密和 ACL 访问控制

  6. 多协议支持:兼容 gRPC、HTTP、DNS 协议

最新版本

  • 当前版本:1.16 (2023年发布)

  • 更新内容

    • 增强 Envoy 集成支持

    • 改进 ACL 系统性能

    • 新增 HCP Consul 托管服务支持

下载资源

  • 官网地址:https://www.consul.io

  • 镜像下载:https://releases.hashicorp.com/consul/

  • 文档地址:https://developer.hashicorp.com/consul/docs

Docker 安装示例

docker run -d --name consul \
  -p 8500:8500 \
  -p 8600:8600/udp \
  consul:1.16 agent -server -ui -node=node1 -bootstrap-expect=1 -client=0.0.0.0

YAML 配置示例 (config.yml)

datacenter: "dc1"
server: true
bootstrap_expect: 3
node_name: "node1"
ui: true
bind_addr: "0.0.0.0"
client_addr: "0.0.0.0"
data_dir: "/consul/data"
log_level: "INFO"
ports:
  http: 8500
  dns: 8600

常见问题

  1. 端口冲突:确保 8300-8302、8500、8600 端口未被占用

  2. ACL 错误:启动时添加 -acl-enable 参数

  3. 节点无法加入集群:检查 -retry-join 参数和网络连通性

  4. 数据持久化:Docker 需挂载 /consul/data 目录

  5. UI 无法访问:确认配置中 ui=trueclient_addr="0.0.0.0"