NetBackup™ for Kubernetes 管理指南
- 适用于 Kubernetes 的 NetBackup 概述
- 部署和配置 NetBackup Kubernetes Operator
- NetBackup Kubernetes Operator 部署的前提条件
- 在 NetBackup Kubernetes Operator 上部署服务软件包
- Kubernetes 工作负载的端口要求
- 升级 NetBackup Kubernetes Operator
- 删除 NetBackup Kubernetes Operator
- 配置 NetBackup Kubernetes 数据移动器
- 自动为 Kubernetes 配置 NetBackup 保护
- 自定义 Kubernetes 工作负载
- 对具有短名称的 NetBackup 服务器进行故障排除
- datamover pod 调度机制支持
- 验证加速器存储类
- 在 NetBackup Kubernetes Operator 上部署证书
- 管理 Kubernetes 资产
- 管理 Kubernetes 智能组
- 管理 Kubernetes 策略
- 保护 Kubernetes 资产
- 管理映像组
- 在 NetBackup 中保护 Rancher 管理的群集
- 恢复 Kubernetes 资产
- 关于增量式备份和还原
- 启用基于加速器的备份
- 在 Kubernetes 中启用 FIPS 模式
- 关于 Openshift 虚拟化支持
- 对 Kubernetes 问题进行故障排除
- 主服务器升级期间出错:NBCheck 失败
- 旧映像还原期间出错:操作失败
- 永久卷恢复 API 期间出错
- 还原期间出错:最终作业状态显示部分失败
- 在同一命名空间上进行还原时出错
- datamover pod 超过 Kubernetes 资源限制
- 还原期间出错:高负载群集上的作业失败
- 为特定群集创建的自定义 Kubernetes 角色无法查看作业
- 从 OperatorHub 还原安装的应用程序时,Openshift 会创建空白非选定的 PVC
- 如果超过 Kubernetes 节点上的 PID 限制,NetBackup Kubernetes Operator 将变得无响应
- 在 NetBackup Kubernetes 10.1 中编辑群集时失败
- 对于大型 PVC,备份或还原失败
- 将命名空间文件模式 PVC 还原到不同文件系统时部分失败
- 从备份副本还原失败并显示映像不一致错误
- NetBackup 主服务器、介质服务器和 Kubernetes 服务器之间的连接检查。
- 没有可用于跟踪日志的空间时,加速器备份过程中出错
- 由于跟踪日志 PVC 创建失败导致加速器备份期间出错
- 由于加速器存储类无效导致加速器备份期间出错
- 启动跟踪日志 pod 时出错
- 设置跟踪日志 PVC 操作的数据移动器实例失败
- 从 configmap 读取跟踪日志存储类时出错
- 将单个 VM 还原到其他群集时,还原操作失败
- 在创建 backupservercert 期间,自动部署 Kubernetes 工作负载失败
- 自动部署 Kubernetes 工作负载失败并显示超时错误
- “快速失败”还原策略失败并显示错误 2890 K8s 还原数据操作失败。
应用程序一致的虚拟机备份
如果 virt-launcher Pod 负责生成虚拟机 (VM),则必须使用 NetBackup pre hook 和 post hook 为该 Pod 添加注释,因为没有该 Pod 便无法创建 VM。
冻结和解冻虚拟机的命令:
/usr/bin/virt-freezer --freeze --name <vm-name> --namespace <namespace>
/usr/bin/virt-freezer --unfreeze --name <vm-name> --namespace <namespace>
# kubectl annotate pod -l vm.kubevirt.io/name=<vm-name> -n <vm-namespace> netbackup-pre.hook.backup.velero.io/command='["/usr/bin/virt-freezer", "--freeze", "--name", “<vm-name>”, “--namespace”, “<vm-namespace>”]'
netbackup-pre.hook.backup.velero.io/container=compute
netbackup-post.hook.backup.velero.io/command='
["/usr/bin/virt-freezer", "--unfreeze", "--name",
“<vm-name>”, “--namespace”, “<vm-namespace>”]'
netbackup-post.hook.backup.velero.io/container=compute
在 NetBackup 中,执行“还原虚拟机”操作时,不会为基于 KubeVirt 的虚拟机执行 Velero 还原前和还原后钩子。之所以有此限制,是因为 KubeVirt 会为虚拟机动态生成启动程序 Pod,并且其创建过程与 Velero 的还原工作流程解耦。因此,Velero 无法将其钩子关联或应用到这些动态创建的 Pod。
要在 KubeVirt 虚拟机中执行还原后操作,用户可以在还原 VM 后利用 cloudInitNoCloud 机制直接在访客作系统内注入和运行脚本。
警告:
即使 NetBackup 支持 Velero 还原钩子,NetBackup 在将它用于基于 KubeVirt 的 VM 时也有限制
注意:
为了实现应用程序一致性,必须在虚拟机上安装 qemu-guest-Agent,以实施 kubevirt 特定的执行前规则和执行后规则。
有关配置 NetBackup pre hook 和 post hook 的更多详细信息,请参见 https://www.veritas.com/
还原后钩子示例:
InitContainer Restore Hooks annotations:
init.hook.restore.velero.io/container-image
init.hook.restore.velero.io/container-name
init.hook.restore.velero.io/command
InitContainer Restore Hooks As Pod Annotation Example:
$ kubectl annotate pod -n <POD_NAMESPACE> <POD_NAME> \
init.hook.restore.velero.io/container-name=restore-hook \
init.hook.restore.velero.io/container-image=alpine:latest \
init.hook.restore.velero.io/command='["/bin/ash", "-c", "date"]'
Exec Restore Hooks annotations:
post.hook.restore.velero.io/container
post.hook.restore.velero.io/command
post.hook.restore.velero.io/on-error
post.hook.restore.velero.io/exec-timeout
post.hook.restore.velero.io/wait-timeout
Exec Restore Hooks As Pod Annotation Example:
$ kubectl annotate pod -n <POD_NAMESPACE> <POD_NAME> \
post.hook.restore.velero.io/container=postgres \
post.hook.restore.velero.io/command='["/bin/bash", "-c", "psql < /backup/backup.sql"]' \
post.hook.restore.velero.io/wait-timeout=5m \
post.hook.restore.velero.io/exec-timeout=45s \
post.hook.restore.velero.io/on-error=Continue