Hashicorp Vault 从存储类型`file` 迁移到`raft`

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

我正在尝试将在我们的 RKE2 集群中运行的存储类型为

file
的 Hashicorp Vault 独立迁移到存储类型为
raft
的 Hashicorp Vault HA。但仍然遇到一些问题。 我们正在使用 Helm chart 版本 0.22.0。所以这些是我遵循的步骤:

  1. 创建一个在 RKE2 中运行的具有 1 个副本的临时 Vault Raft(不要初始化 vault)
  2. Exec
    进入存储类型为
    file
  3. 的旧Vault容器
  4. 转到
    /vault/
    文件夹并在其中创建一个
    raft
    文件夹
  5. 运行命令
    vault operator migrate --config migrate.hcl
    migrate.hcl 文件如下所示:
storage_source "file" {
  path = "/vault/data/"
}

storage_destination "raft" {
  path = "/vault/raft/"
  node_id = "vault-raft-0"
}

cluster_addr="https://127.0.0.1:8201"
  1. 迁移完成,它在
    vault.db
    中创建了一个
    /vault/raft/
    文件,在
    raft.db
    中创建了一个
    /vault/raft/raft/
    文件,其中包括一个名为
    snapshots
    .
  2. 的空文件夹
  3. 然后我将整个
    /vault/raft/
    文件夹复制到我的本地电脑,然后再次复制到临时的 Vault Raft 容器。它具有相同的数据存储挂载路径,所以:
    /vault/raft/
  4. 复制文件后,我重新部署了临时 Vault Raft,因为 pvc 不会被删除,并检查它是否还有复制的
    .db
    文件。
  5. 最后我尝试解封它,但在运行第三条命令后,它返回以下消息:
    Error unsealing: context deadline exceeded

我做错了什么吗?

kubernetes data-migration hashicorp-vault
1个回答
0
投票

也许有点晚了,但我的工作流程听起来是这样的:

  1. 创建内容为 migrate.hcl :
storage_source "file" {
 path = "/vault/data/"
}
 storage_destination "raft" {
 path = "/vault/data/"
}
cluster_addr = "https://vault-0.vault-internal:8201"
  1. 然后运行
    vault operator migrate -config=migrate.hcl
  2. 卸载之前的部署。
  3. 在启用 raft 的情况下安装部署。
  4. 在 vault-0 运行
    vault operator unseal
  5. 在其他 pod 运行
    vault operator raft join http://vault-0.vault-internal:8200
    vault operator unseal
    .

这对我有用

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