第 2 章 从备份中恢复

您可以使用 roxctl 命令行界面 (CLI) 从现有备份中恢复 Red Hat Advanced Cluster Security for Kubernetes。

根据您的要求和您备份的数据,您可以从以下类型的备份中恢复:

  1. 从 Central 数据库备份中恢复 Central 数据库 :使用此数据库从数据库故障或数据崩溃事件中恢复。它允许您将 Central 数据库恢复并恢复到其早期功能状态。
  2. 从 Central 部署备份中恢复 Central : 如果您要将 Central 迁移到另一个集群或命名空间,请使用它。这个选项恢复中央安装的配置。

2.1. 使用 roxctl CLI 恢复 Central 数据库

您可以使用 restore 命令使用 roxctl CLI 恢复 Red Hat Advanced Cluster Security for Kubernetes。您需要 API 令牌或管理员密码来运行此命令。

2.1.1. 使用 API 令牌恢复

您可以使用 API 令牌恢复 Red Hat Advanced Cluster Security for Kubernetes 的整个数据库。

先决条件

  • 您必须具有 Red Hat Advanced Cluster Security for Kubernetes 备份文件。
  • 您必须具有带有管理员角色的 API 令牌。
  • 您必须已安装了 roxctl CLI。

流程

  1. 设置 ROX_API_TOKENROX_CENTRAL_ADDRESS 环境变量:

    $ export ROX_API_TOKEN=<api_token>
    $ export ROX_CENTRAL_ADDRESS=<address>:<port_number>
  2. 运行 restore 命令:

    $ roxctl -e "$ROX_CENTRAL_ADDRESS" central db restore <backup_file>

2.1.2. 使用管理员密码恢复

您可以使用管理员密码恢复 Red Hat Advanced Cluster Security for Kubernetes 的整个数据库。

先决条件

  • 您必须具有 Red Hat Advanced Cluster Security for Kubernetes 备份文件。
  • 您必须具有管理员密码。
  • 您必须已安装了 roxctl CLI。

流程

  1. 设置 ROX_CENTRAL_ADDRESS 环境变量:

    $ export ROX_CENTRAL_ADDRESS=<address>:<port_number>
  2. 运行 restore 命令:

    $ roxctl -p <admin_password> -e "$ROX_CENTRAL_ADDRESS" central db restore <backup_file>

2.1.3. 恢复操作

在恢复操作过程中,如果您的连接中断或需要离线,您可以恢复恢复操作。

  • 如果您无法访问运行恢复操作的机器,请使用 roxctl central db restore status 命令检查持续恢复操作的状态。
  • 如果连接中断,roxctl CLI 会在连接可用时自动尝试恢复任务。自动连接重试取决于 timeout 选项指定的持续时间。
  • 使用 --timeout 选项指定时间(以秒为单位、分钟或小时)后,roxctl CLI 会停止尝试恢复恢复操作。如果没有指定,则默认超时为 10 分钟 (10m)。
  • 如果恢复操作卡住或者要取消它,请使用 roxctl central db restore cancel 命令取消持续恢复操作。
  • 如果恢复操作卡住,或者您取消了它,或者已取消了,您可以通过重新运行原始命令来恢复之前的恢复。
注意
  • 在中断期间,Red Hat Advanced Cluster Security for Kubernetes 会缓存持续恢复操作 24 小时。您可以通过重新运行原始恢复命令来恢复此操作。
  • --timeout 选项只管理客户端侧连接重试,不会影响 24 小时服务器端恢复缓存。
  • 您无法在 Central pod 重启后恢复恢复操作。
  • 如果恢复操作中断,您必须在 24 小时内重启它,并在 Central 重启前进行重启,否则 Red Hat Advanced Cluster Security for Kubernetes 会取消恢复操作。