Consul 单机部署
目录
安装 consul
yum install -y yum-utils
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum -y install consul
配置 consul
修改 /etc/consul.d/consul.hcl
文件,配置如下:
log_level = "INFO"
log_file = "/var/log/consul/"
log_rotate_bytes = 10485760
log_rotate_max_files = 3
connect = {
enabled = true
}
data_dir = "/data/consul"
client_addr = "0.0.0.0"
ui_config{
enabled = true
}
server = true
bootstrap_expect=1
encrypt = "2choh8YtnexKoVw8M9L6rcKGG21QwjfvnRYaKTJPdSw="
由于 consul 部署为单机环境,
bootstrap_expect
需要配置为 1, encrypt 参数的值可以通过consul keygen
命令生成
启动 consul 服务
systemctl start consul
consul 服务端口说明
- 8300: 集群内数据的读写和复制
- 8301: 单个数据中心 gossip 协议通讯
- 8302: 跨数据中心 gossip 协议通讯
- 8500: 提供获取服务列表、注册服务、注销服务等HTTP接口;提供UI服务
- 8600: 采用 DNS 协议提供服务发现功能
ACL 访问控制
consul 默认是不启用访问权限控制的,为了服务的安全需要启用访问权限控制
准备 acl.hcl 文件
acl = {
enabled = true
default_policy = "deny"
enable_token_persistence = true
}
将 acl.hcl
文件放到 /etc/consul.d
目录下,重启 consul
服务
mv acl.hcl /etc/consul.d
systemctl restart consul
创建初始引导令牌
consul acl bootstrap
保存上面命令输出信息
将 SecretID
写入 acl.hcl
文件中
acl = {
enabled = true
default_policy = "deny"
enable_token_persistence = true
tokens = {
master = "<token_strings>"
}
}
保存,重启 consul 服务即可,以后访问 consul 服务需要带上 token 通过身份验证
配置 consul 键值对
浏览器中打开 http://<server_ip>:8500/ui/dc1/kv
点击 key/value 创建 key/value 值,如下图