VMWare 上的高可用 Hashicorp Vault 集群安装

问题描述 投票:0回答:1

我想在我们托管在 VMware 上的服务器上设置一个高可用的 Hashicorp Vault 集群。

按照Hashicorp的文档,我发现最方便和简单的是使用Raft Storage Backend for a HA Vault Cluster。 https://developer.hashicorp.com/vault/tutorials/raft/raft-storage

当我尝试使用此文档进行安装时,我实际上看到此安装是在单个服务器上构建的,就好像它正在运行 4 个 Vault 节点一样。然而,我需要的是在不同的服务器上建立一个 HA 集群。当我浏览文件时,我感到非常困惑和不确定。 是否可以通过 OSS Vault 以多服务器方式安装 HA Cluster?还是需要企业执照?

我真的需要一个非常简单的 HA 集群。我将使用它在生产环境中为 Kubernetes 保密。我愿意接受您的所有建议和信息。

hashicorp-vault vault
1个回答
0
投票

是的,支持你想做的事。请记住,使用开源解决方案时,只有主节点会处理请求。其他节点将它们收到的请求转发给主节点。 OSS Vault 还限制了您的自动解封选项。

这是一个完整的项目,但这里是让它运行的基本步骤。它可以扩展到任意数量的节点,它也可以在容器中工作。

对于您拥有的每个节点:

  1. 将 Vault 配置为在您的虚拟机上作为服务运行。
  2. 确保每个节点都可以到达其
    cluster_addr
    上的对等节点,并且它们可以到达负载均衡器。
  3. 所有节点应该配置相同,Raft存储和相同的seal配置.
  4. 将您的负载均衡器配置为 poll
    sys/health
    以便它始终指向领导节点。
  5. 设置
    VAULT_ADDR
    指向本地节点,在每个节点上。在
    VAULT_ADDR=http://localhost:8200
    中加入
    /etc/environment
    是一种方法,ymmv.

我假设你可以自动解封,但很可能这是不可能的(开源版本不支持 HSM,不支持云等)。

如果可以自动解封,请将存储节的

leader_api_addr
参数设置为负载均衡器的地址。

在这一点上,你的负载均衡器可能有点混乱,试图找到一个不存在的领导者。由于您的节点都未初始化,因此找不到它。别担心。

初始化存储

选择任何节点并使用命令行对其进行初始化。这一步对于安全很重要,但超出了这个(已经很广泛的)问题的范围。

然后,根据您的自动开封功能:

让其他节点自动加入

初始节点准备就绪后,您的负载均衡器将最终找到一个领导者并向其发送流量。这意味着剩余的未初始化节点将能够自动加入。他们将自动向领导节点请求挑战,以证明他们共享相同的解封机制。成功解决挑战将开始复制。除了看

vault operator raft list peers
,别无他法。

手动开封

如果你不能自动加入,那么你不应该在你的配置中有

retry_join
节。您必须使用 vault operator raft join
 手动加入剩余的节点。确保将请求发送到本地节点,而不是领导者。您在命令行上指定领导者地址。将 
VAULT_ADDR
 设置为本地节点在这里很重要。您可能会遇到证书名称的问题,因此您也可以将 
127.0.0.1
 硬编码为 
/etc/hosts
 中负载均衡器主机名的 IP。您还可以在负载均衡器配置中有两个条目:一个是循环法(依赖于 Vault 内部请求转发),另一个始终是领导者。日常使用 round-robin 地址,但 Raft join 任务使用“always-the-leader”地址。

© www.soinside.com 2019 - 2024. All rights reserved.