×

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

根据您的需求和已备份的数据,您可以从以下类型的备份进行恢复

  1. **从 Central 数据库备份恢复 Central 数据库**: 用于从数据库故障或数据损坏事件中恢复。它允许您将 Central 数据库恢复到其之前的功能状态。

  2. **从 Central 部署备份恢复 Central**: 如果您要将 Central 迁移到另一个集群或命名空间,请使用此方法。此选项将恢复 Central 安装的配置。

使用 roxctl CLI 恢复 Central 数据库

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

使用 API 令牌恢复

您可以使用 API 令牌恢复 RHACS 的整个数据库。

前提条件
  • 您拥有 RHACS 备份文件。

  • 您拥有具有管理员角色的 API 令牌。

  • 您已安装roxctl CLI。

步骤
  1. 运行以下命令设置ROX_API_TOKENROX_ENDPOINT环境变量

    $ export ROX_API_TOKEN=<api_token>
    $ export ROX_ENDPOINT=<address>:<port_number>
  2. 运行以下命令恢复Central数据库

    $ roxctl central db restore <backup_file> (1)
    1 对于<backup_file>,请指定要恢复的备份文件名。

使用管理员密码恢复

您可以使用管理员密码恢复RHACS的整个数据库。

前提条件
  • 您拥有 RHACS 备份文件。

  • 您拥有管理员密码。

  • 您已安装roxctl CLI。

步骤
  1. 运行以下命令设置ROX_ENDPOINT环境变量

    $ export ROX_ENDPOINT=<address>:<port_number>
  2. 运行以下命令恢复Central数据库

    $ roxctl -p <admin_password> \(1)
      central db restore <backup_file> (2)
    1 对于<admin_password>,请指定管理员密码。
    2 对于<backup_file>,请指定要恢复的备份文件名。

恢复恢复操作

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

  • 如果您无法访问运行恢复操作的机器,可以使用roxctl central db restore status命令检查正在进行的恢复操作的状态。

  • 如果连接中断,roxctl CLI会在连接再次可用时自动尝试恢复任务。自动连接重试取决于timeout选项指定的持续时间。

  • 使用--timeout选项指定roxctl CLI停止尝试恢复恢复操作之前的秒、分钟或小时数。如果未指定该选项,则默认超时时间为10分钟。

  • 如果恢复操作卡住或您想取消它,请使用roxctl central db restore cancel命令取消正在运行的恢复操作。

  • 如果恢复操作卡住、您已取消它或时间已过期,您可以通过再次运行原始命令来恢复之前的恢复操作。

  • 在中断期间,RHACS 会缓存正在进行的恢复操作 24 小时。您可以通过再次执行原始恢复命令来恢复此操作。

  • --timeout选项仅控制客户端连接重试,对服务器端的24小时恢复缓存没有影响。

  • 您无法跨Central pod重启恢复。

  • 如果恢复操作中断,您必须在24小时内并在重启Central之前重新启动它,否则RHACS会取消恢复操作。

使用roxctl CLI恢复Central部署

您可以使用您制作的备份将Central部署恢复到其原始配置。

您必须首先使用roxctl CLI恢复证书,然后运行Central安装脚本恢复Central部署。

使用roxctl CLI恢复证书

使用roxctl CLI生成Kubernetes清单以将RHACS Central组件安装到您的集群。这样做可以确保安全集群的身份验证证书和API令牌对恢复的版本仍然有效。如果您备份了另一个RHACS Central实例,您可以使用该备份中的证书文件。

使用roxctl CLI,您无法恢复整个Central部署。而是,首先使用roxctl CLI使用您Central数据备份中的证书生成新的清单。之后,使用这些清单安装Central。

前提条件
  • 您必须拥有Red Hat Advanced Cluster Security for Kubernetes备份文件。

  • 您必须已安装roxctl CLI。

步骤
  1. 运行交互式安装命令

    $ roxctl central generate interactive
  2. 对于以下提示,请输入Red Hat Advanced Cluster Security for Kubernetes备份文件的路径

    Enter path to the backup bundle from which to restore keys and certificates (optional): _<backup-file-path>_
  3. 对于其他后续提示,按Enter接受默认值或根据需要输入自定义值。

完成后,交互式安装命令将创建一个名为central-bundle的文件夹,其中包含部署Central所需的YAML清单和脚本。

运行Central安装脚本

运行交互式安装程序后,您可以运行setup.sh脚本安装Central。

步骤
  1. 运行setup.sh脚本配置镜像仓库访问。

    $ ./central-bundle/central/scripts/setup.sh
  2. 要启用策略即代码功能(技术预览版),请手动应用位于helm/chart/crds/config.stackrox.io_securitypolicies.yaml的.zip文件中的config.stackrox.io CRD。

    策略即代码仅为技术预览版功能。技术预览版功能不受Red Hat生产服务级别协议(SLA)支持,可能功能不完整。Red Hat不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。

    有关Red Hat技术预览版功能的支持范围的更多信息,请参阅技术预览版功能支持范围

    要应用CRD,请运行以下命令

  3. 创建必要的资源

  4. 检查部署进度

  5. Central运行后,找到RHACS门户IP地址并在浏览器中打开它。根据您在回答提示时选择的公开方法,可以使用以下方法之一获取IP地址。

    公开方法 命令 地址 示例

    路由

    oc -n stackrox get route central

    输出中HOST/PORT列下的地址

    https://central-stackrox.example.route

    节点端口

    oc get node -owide && oc -n stackrox get svc central-loadbalancer

    任何节点的IP或主机名,在服务显示的端口上

    https://198.51.100.0:31489

    负载均衡器

    oc -n stackrox get svc central-loadbalancer

    为服务显示的EXTERNAL-IP或主机名,在443端口上

    https://192.0.2.0

    central-bundle/central/scripts/port-forward.sh 8443

    http://127.0.0.1:8443

    http://127.0.0.1:8443

如果您在交互式安装过程中选择了自动生成的密码,您可以运行以下命令查看它以登录Central

$ cat central-bundle/password

使用RHACS Operator恢复Central部署

您可以使用RHACS Operator将Central部署恢复到其原始配置。要成功恢复,您需要Central自定义资源central-tls的备份以及管理员密码。

前提条件
  • 您必须拥有central-tls备份文件。

  • 您必须拥有Central自定义资源备份文件。

  • 您必须拥有管理员密码备份文件。

步骤
  1. 使用central-tls备份文件创建资源

    $ oc apply -f central-tls.json
  2. 使用central-htpasswd备份文件创建密钥

    $ oc apply -f central-htpasswd.json
  3. 使用central-cr.yaml文件创建Central部署

    $ oc apply -f central-cr.yaml

使用Helm恢复Central部署

您可以使用Helm将Central部署恢复到其原始配置。要成功恢复,您需要Central自定义资源、central-tls密钥和管理员密码的备份。

前提条件
  • 您必须拥有Helm values备份文件。

  • 您必须拥有Red Hat Advanced Cluster Security for Kubernetes备份文件。

  • 您必须已安装roxctl CLI。

步骤
  1. 从 RHACS 数据库备份文件生成values-private.yaml 文件

    $ roxctl central generate k8s pvc --backup-bundle _<path-to-backup-file>_ --output-format "helm-values"
  2. 运行helm install 命令并指定您的备份文件

    $ helm install -n stackrox --create-namespace stackrox-central-services rhacs/central-services -f central-values-backup.yaml -f central-bundle/values-private.yaml

将 Central 恢复到另一个集群或命名空间

您可以使用 RHACS Central 数据库和部署的备份将 Central 恢复到另一个集群或命名空间。

以下列表提供了安装步骤的高级概述

  1. 根据您的安装方法,您必须首先按照以下主题中的说明恢复 Central 部署

    • 请确保使用备份的 Central 证书,以便旧 Central 实例发行的安全集群和 API 令牌保持有效。

    • 如果您部署到另一个命名空间,则必须更改备份资源或命令中的命名空间。

  2. 按照使用 roxctl CLI 恢复 Central 数据库主题中的说明恢复 Central 数据库。

  3. 如果您有一个指向旧 RHACS Central 实例的外部 DNS 条目,则必须将其重新配置为指向您创建的新 RHACS Central 实例。