VMware环境下多服务器部署Hashicorp Vault高可用集群咨询
关于HashiCorp Vault OSS版多服务器高可用集群的解答
核心问题明确
- OSS版Vault完全支持跨服务器部署Raft高可用集群,不需要企业许可证。官方文档里的单服务器多节点示例仅用于快速演示Raft集群逻辑,生产环境中跨物理/虚拟服务器部署才是标准的高可用落地方式。
极简跨VMware服务器Raft集群部署建议
针对生产环境存储Kubernetes密钥的需求,给出以下轻量化部署步骤:
- 节点准备:在VMware上创建3台配置一致的服务器(推荐奇数节点,满足Raft quorum要求),确保节点间网络互通,开放默认端口:8200/TCP用于API和集群通信、8201/TCP用于Raft内部同步。
- 基础配置:每台节点安装Vault OSS版,创建
vault.hcl配置文件(每个节点需替换唯一标识和IP):storage "raft" { path = "/opt/vault/data" node_id = "node1" # 每个节点设置唯一ID,如node1/node2/node3 } listener "tcp" { address = "0.0.0.0:8200" tls_cert_file = "/etc/vault/tls/cert.pem" tls_key_file = "/etc/vault/tls/key.pem" } api_addr = "https://<节点内网IP>:8200" cluster_addr = "https://<节点内网IP>:8201" - 集群初始化与启动:
- 启动第一个节点:
vault server -config=vault.hcl,执行vault operator init完成初始化,务必妥善保存unseal密钥和根令牌。 - 执行
vault operator unseal完成第一个节点的unseal操作。 - 启动第二个节点后,执行
vault operator raft join https://<第一个节点IP>:8200加入集群,再执行unseal。 - 第三个节点重复第二个节点的join+unseal流程。
- 启动第一个节点:
- 集群状态验证:在任意节点执行
vault operator raft list-peers,确认所有节点均已加入,且存在一个leader节点。 - Kubernetes集成:启用Vault的Kubernetes认证方法,配置对应角色绑定K8s服务账号,将密钥存储在KV引擎中,供K8s应用通过Vault Agent或API安全获取。
生产环境关键注意事项
- 必须启用TLS加密,禁止使用
tls_disable = true的配置,保障节点间通信和API访问的安全性。 - Raft集群至少3个节点才能容忍1个节点故障,2节点集群无法达成quorum,不具备高可用能力。
- 定期备份Raft存储目录和unseal密钥,避免数据丢失。
内容的提问来源于stack exchange,提问作者mek
相关产品推荐
相关产品推荐

