5.2. OADP 发行注记
5.2.1. OADP 1.5 发行注记 复制链接链接已复制到粘贴板!
OpenShift API for Data Protection (OADP) 的发行注记介绍了新的功能和增强功能、已弃用的功能、产品建议、已知问题和解决问题。
有关 OADP 的更多信息,请参阅 OpenShift API for Data Protection (OADP) FAQ
5.2.1.1. OADP 1.5.0 发行注记 复制链接链接已复制到粘贴板!
OpenShift API for Data Protection (OADP) 1.5.0 发行注记列出了已解决的问题和已知问题。
5.2.1.1.1. 新功能 复制链接链接已复制到粘贴板!
OADP 1.5.0 引入了一个新的自助服务功能
OADP 1.5.0 引入了名为 OADP Self-Service 的新功能,启用命名空间管理员用户在 OpenShift Container Platform 上备份和恢复应用程序。在之前的 OADP 版本中,您需要 cluster-admin 角色来执行 OADP 操作,如备份和恢复应用程序、创建备份存储位置等。
从 OADP 1.5.0 开始,您不需要 cluster-admin 角色来执行备份和恢复操作。您可以将 OADP 与命名空间 admin 角色一起使用。命名空间 admin 角色仅对该用户分配到的命名空间具有管理员访问权限。您只能在集群管理员安装 OADP Operator 并提供所需权限后使用 Self-Service 功能。
使用 must-gather
工具收集日志已使用 Markdown 概述进行了改进
您可以使用 must-gather
工具来收集用于数据保护 (OADP) 自定义资源的日志以及 OpenShift API 的信息。must-gather
数据必须附加到所有客户案例。这个工具使用收集的信息生成 Markdown 输出文件,它位于 must-gather
日志集群目录中。
dataMoverPrepareTimeout
和 resourceTimeout
参数现在添加到 DPA 中的 nodeAgent
中
Data Protection Application (DPA) 中的 nodeAgent
字段现在包含以下参数:
-
dataMoverPrepareTimeout
: 定义DataUpload
或DataDownload
进程将等待的持续时间。默认值为 30 分钟。 -
resourceTimeout
:设置没有被其他特定超时参数解决的资源进程的超时时间。默认值为 10 分钟。
使用 DPA 中的 spec.configuration.nodeAgent
参数来配置 nodeAgent
守护进程集
Velero 不再使用 node-agent-config
配置映射来配置 nodeAgent
守护进程集。在这个版本中,您必须在数据保护应用程序(DPA)中使用新的 spec.configuration.nodeAgent
参数来配置 nodeAgent
守护进程集。
现在可以使用备份存储库配置配置映射配置 DPA
使用 Velero 1.15 及之后的版本,您现在可以配置每个存储库缓存的总大小。这可防止因为临时存储不足而无法移除 pod。请参阅以下新参数添加到 DPA 中的 NodeAgentConfig
字段中:
-
cacheLimitMB
:以 MB 为单位设置本地数据缓存大小限制。 fullMaintenanceInterval
:默认值为 24 小时。使用以下覆盖选项控制 Kopia 存储库中的已删除 Velero 备份率:-
normalGC: 24 小时
-
fastGC: 12 小时
-
eagerGC: 6 小时
-
提高 node-agent 安全性
在这个版本中,添加了以下更改:
-
现在,在 DPA 中的
velero
字段中添加了新的configuration
选项。 disableFsBackup
参数的默认值为false
或non-existing
。在这个版本中,以下选项添加到SecurityContext
字段中:-
Privileged: true
-
AllowPrivilegeEscalation: true
-
如果将
disableFsBackup
参数设置为true
,它会从 node-agent 中删除以下挂载:-
host-pods
-
host-plugins
-
- 修改 node-agent 始终以非 root 用户身份运行。
- 将 root 文件系统更改为只读方式。
使用写访问权限更新以下挂载点:
-
/home/velero
-
tmp/credentials
-
-
将
SeccompProfileTypeRuntimeDefault
选项用于SeccompProfile
参数。
为并行项目备份添加 DPA 支持
默认情况下,只有一个线程处理一个项目块。Velero 1.16 支持并行项目备份,其中可以并行处理备份中的多个项目。
您可以使用可选的 Velero 服务器参数 --item-block-worker-count
来运行额外的 worker 线程来并行处理项目。要在 OADP 中启用此功能,请将 dpa.Spec.Configuration.Velero.ItemBlockWorkerCount
参数设置为大于零的整数值。
目前还不支持并行运行多个完整备份。
OADP 日志现在以 JSON 格式提供
随着 OADP 1.5.0 的发布,日志现在以 JSON 格式提供。它有助于在 Elastic logs 管理系统中包含预解析的数据。
oc get dpa
命令现在显示 RECONCILED
状态
在这个版本中,oc get dpa
命令会显示 RECONCILED
状态,而不是只显示 NAME
和 AGE
以改进用户体验。例如:
oc get dpa -n openshift-adp
$ oc get dpa -n openshift-adp
NAME RECONCILED AGE
velero-sample True 2m51s
5.2.1.1.2. 已解决的问题 复制链接链接已复制到粘贴板!
容器现在对 terminationMessagePolicy
使用 FallbackToLogsOnError
在这个版本中,terminationMessagePolicy
字段可以为 Data Protection (OADP) Operator 容器(如 operator-manager
,velero
,node-agent
, 和 non-admin-controller
)设置 FallbackToLogsOnError
值。
此更改可确保容器退出并显示错误并且终止消息文件为空,OpenShift 会使用容器日志输出的最后一部分作为终止消息。
命名空间管理员现在可以在恢复后访问应用程序
在以前的版本中,在恢复操作后,命名空间 admin 无法执行带有以下错误的应用程序:
-
不允许 exec 操作,因为 pod 的安全上下文超过您的权限
-
无法针对任何安全性上下文约束进行验证
-
用户或 serviceaccount, provider restricted-v2 不可用
在这个版本中,这个问题已被解决,命名空间 admin 可以在恢复后成功访问应用程序。
现在,可以使用注解在单独的资源实例级别指定状态恢复
在以前的版本中,只有使用 Restore
自定义资源(CR)中的 restoreStatus
字段在资源类型中配置状态恢复。
在这个版本中,您可以使用以下注解在单独的资源实例级别指定状态恢复:
metadata: annotations: velero.io/restore-status: "true"
metadata:
annotations:
velero.io/restore-status: "true"
现在,恢复可以成功使用 excludedClusterScopedResources
在以前的版本中,当执行将 excludeClusterScopedResources
字段设置为 storageclasses
,Namespace
参数的应用程序备份时,备份可以成功,但恢复部分失败。在这个版本中,恢复可以成功。
备份已完成,即使它在 wait ForPluginOperations
阶段被重启
在以前的版本中,备份被标记为 failed,并显示以下错误消息:
failureReason: found a backup with status "InProgress" during the server starting, mark it as "Failed"
failureReason: found a backup with status "InProgress" during the server starting,
mark it as "Failed"
在这个版本中,如果备份在 wait ForPluginOperations
阶段被重启,则会完成备份。
现在,当 DPA 中的 disableFsbackup' 参数设置为 true
时,错误消息更为明确
在以前的版本中,当数据保护应用程序(DPA)的 spec.configuration.velero.disableFsBackup
字段被设置为 true
时,备份部分会失败并显示错误,它没有通知。
在这个版本中,错误消息对问题进行故障排除更为有用。例如,错误消息表示 disableFsBackup: true
是 DPA 中的问题,或者对于非管理员用户,则无法访问 DPA。
在 parseAWSSecret 中处理 AWS STS 凭证
在以前的版本中,使用 STS 身份验证的 AWS 凭证不会被正确验证。
在这个版本中,parseAWSSecret
功能检测到特定于 STS 的字段,并更新 ensureSecretDataExists
功能来正确处理 STS 配置集。
repositoryMaintenance
作业关联性配置可用于配置
在以前的版本中,DPA 规格中缺少存储库维护作业 pod 关联性的新配置。
在这个版本中,repositoryMaintenance
作业关联性配置可用于将 BackupRepository
标识符映射到其配置。
当 CR 规格正确后,ValidationErrors
字段停止
在以前的版本中,当使用错误 spec.schedule
值创建调度 CR 时,之后使用正确的值修补了相同的值,Valid Errors
字段仍然存在。因此,即使 spec 正确,ValidationErrors
字段也会显示不正确的信息。
在这个版本中,在 CR 规格正确后,ValidationErrors
字段会中断。
当在 restoreSpec
中使用 includedNamesapces
字段时,volumeSnapshotContents
自定义资源会被恢复
在以前的版本中,当在恢复规格中使用 includedNamespace
字段触发恢复操作时,恢复操作会成功完成,但没有创建 volumeSnapshotContents
自定义资源(CR),且 PVC 处于 Pending
状态。
在这个版本中,即使 restoreSpec
中使用 includedNamesapces
字段,volumeSnapshotContents
CR 也会被恢复。因此,应用程序 pod 在恢复后处于 Running
状态。
OADP operator 在 AWS 上成功创建存储桶
在以前的版本中,容器使用 readOnlyRootFilesystem: true
设置进行配置,但代码尝试使用 os.CreateTemp ()
函数在 /tmp
目录中创建临时文件。因此,当将 AWS STS 身份验证与 Cloud Credential Operator (CCO)流搭配使用时,OADP 无法创建 AWS 凭证处理所需的临时文件,并显示以下错误:
ERROR unable to determine if bucket exists. {"error": "open /tmp/aws-shared-credentials1211864681: read-only file system"}
ERROR unable to determine if bucket exists. {"error": "open /tmp/aws-shared-credentials1211864681: read-only file system"}
在这个版本中,添加了以下更改来解决这个问题:
-
在控制器 pod 规格中,名为
tmp-dir
的新emptyDir
卷。 -
卷挂载到容器,该容器将此卷挂载到
/tmp
目录中。 -
对于安全最佳实践,可维护
readOnlyRootFilesystem: true
。 -
将已弃用的
ioutil.TempFile ()
函数替换为推荐的os.CreateTemp ()
函数。 -
删除了不必要的
io/ioutil
导入,这已不再需要。
有关本发行版本中解决的所有问题的完整列表,请参阅 JIRA 中的 OADP 1.5.0 解决的问题 列表。
5.2.1.1.3. 已知问题 复制链接链接已复制到粘贴板!
Kopia 在备份过期后不会删除所有工件
即使删除备份,Kopia 在备份过期后也不会从 ${bucket_name}/kopia/$openshift-adp
中删除卷工件。与过期和删除的数据文件相关的信息保留在元数据中。为确保 OpenShift API for Data Protection (OADP)可以正常工作,数据不会被删除,且它存在于 /kopia/
目录中,例如:
-
kopia.repository
:主存储库格式信息,如加密、版本和其他详细信息。 -
kopia.blobcfg
: 配置如何命名数据 Blob。 -
kopia.maintenance
: Tracks maintenance owner, schedule, and last successful build. -
日志
:日志 Blob。
有关本发行版本中所有已知问题的完整列表,请参阅 JIRA 中的 OADP 1.5.0 已知问题 列表。
5.2.1.1.4. 弃用的功能 复制链接链接已复制到粘贴板!
configuration.restic
specification 字段已弃用
在 OpenShift API for Data Protection (OADP) 1.5.0 中,config.restic
specification 字段已弃用。使用带有 uploaderType
字段的 nodeAgent
部分选择 kopia
或 restic
作为 uploaderType
。请注意,Restic 在 OpenShift API for Data Protection (OADP) 1.5.0 中已弃用。
5.2.1.1.5. 技术预览 复制链接链接已复制到粘贴板!
对 HyperShift 托管 OpenShift 集群的支持作为技术预览提供
OADP 可以作为技术预览支持并促进 HyperShift 托管 OpenShift 集群中的应用程序迁移。它为托管的集群中的应用程序确保无缝的备份和恢复操作。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
5.2.1.2. 将 OADP 1.4.0 升级到 1.5.0 复制链接链接已复制到粘贴板!
始终升级到下一个次版本。不要跳过版本。要升级到更新的版本,请一次只升级一个频道。例如,要从 OADP 1.1 升级到 1.3,请首先升级到 1.2,然后升级到 1.3。
5.2.1.2.1. 从 OADP 1.4 改为 1.5 复制链接链接已复制到粘贴板!
Velero 服务器已从 1.14 版本更新至 1.16。
这会更改以下内容:
- 版本支持更改
- 用于数据保护的 OpenShift API 实施了一个简化的版本支持政策。红帽在一个 OpenShift 版本上只支持一个用于数据保护(OADP)的 OpenShift API 版本,以确保其稳定性和可维护性。OADP 1.5.0 只在 OpenShift 4.19 版本中被支持。
- OADP 自助服务
OADP 1.5.0 引入了名为 OADP Self-Service 的新功能,启用命名空间管理员用户在 OpenShift Container Platform 上备份和恢复应用程序。在之前的 OADP 版本中,您需要 cluster-admin 角色来执行 OADP 操作,如备份和恢复应用程序、创建备份存储位置等。
从 OADP 1.5.0 开始,您不需要 cluster-admin 角色来执行备份和恢复操作。您可以将 OADP 与命名空间 admin 角色一起使用。命名空间 admin 角色仅对该用户分配到的命名空间具有管理员访问权限。您只能在集群管理员安装 OADP Operator 并提供所需权限后使用 Self-Service 功能。
备份PVC
和restorePVC
配置backupPVC
资源是一个中间持久性卷声明(PVC),用于在数据移动备份操作期间访问数据。您可以使用DataProtectionApplication
(DPA)自定义资源中的nodeAgent.backupPVC
部分创建一个只读备份 PVC。restorePVC
资源是一个中间 PVC,用于在 Data Mover restore 操作过程中写入数据。您可以使用
ignoreDelayBinding
字段在 DPA 中配置restorePVC
。
5.2.1.2.2. 备份 DPA 配置 复制链接链接已复制到粘贴板!
您必须备份当前的 DataProtectionApplication
(DPA) 配置。
流程
运行以下命令来保存您当前的 DPA 配置:
示例命令
oc get dpa -n openshift-adp -o yaml > dpa.orig.backup
$ oc get dpa -n openshift-adp -o yaml > dpa.orig.backup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.1.2.3. 升级 OADP Operator 复制链接链接已复制到粘贴板!
您可以按照以下流程升级 OpenShift API for Data Protection (OADP) Operator。
不要在 OpenShift 4.18 集群上安装 OADP 1.5.0。
先决条件
- 已安装最新的 OADP 1.4.4。
- 已备份了数据。
流程
将 OpenShift 4.18 升级到 OpenShift 4.19。
注意OpenShift 4.19 不支持 OpenShift API for Data Protection (OADP) 1.4。
-
将 OADP Operator 的订阅频道从
stable-1.4
改为stable
。 - 等待 Operator 和容器更新并重启。
5.2.1.2.4. 将 DPA 转换为 OADP 1.5.0 的新版本 复制链接链接已复制到粘贴板!
OpenShift 4.19 不支持 OpenShift API for Data Protection (OADP) 1.4。您可以使用新的 spec.configuration.nodeAgent
字段及其子字段将数据保护应用程序(DPA)转换为新的 OADP 1.5 版本。
流程
要配置
nodeAgent
守护进程集,请使用 DPA 中的spec.configuration.nodeAgent
参数。请参见以下示例:DataProtectionApplication
配置示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要使用名为
node-agent-config
的ConfigMap
资源配置nodeAgent
守护进程集,请参阅以下示例配置:配置映射示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.1.2.5. 验证升级 复制链接链接已复制到粘贴板!
您可以按照以下流程验证 OpenShift API for Data Protection (OADP)升级。
流程
验证
DataProtectionApplication
(DPA)是否已成功协调:oc get dpa dpa-sample -n openshift-adp
$ oc get dpa dpa-sample -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME RECONCILED AGE dpa-sample True 2m51s
NAME RECONCILED AGE dpa-sample True 2m51s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意RECONCILED
列必须为True
。运行以下命令,通过查看 OADP 资源来验证安装是否完成:
oc get all -n openshift-adp
$ oc get all -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意node-agent
pod 仅在DataProtectionApplication
(DPA)中使用restic
或kopia
时才创建。在 OADP 1.4.0 和 OADP 1.3.0 版本中,node-agent
pod 被标记为restic
。运行以下命令,验证备份存储位置并确认
PHASE
为Available
:oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.2. OADP 1.4 发行注记 复制链接链接已复制到粘贴板!
OpenShift API for Data Protection (OADP) 的发行注记介绍了新的功能和增强功能、已弃用的功能、产品建议、已知问题和解决问题。
有关 OADP 的更多信息,请参阅 OpenShift API for Data Protection (OADP) FAQ
5.2.2.1. OADP 1.4.4 发行注记 复制链接链接已复制到粘贴板!
OpenShift API for Data Protection (OADP) 1.4.4 是一个 CGO(Container Grade Only)版本,它刷新了容器的健康级别。与 OADP 1.4.3 相比,产品本身的代码并没有变化。
5.2.2.1.1. 已知问题 复制链接链接已复制到粘贴板!
恢复有状态应用程序的问题
当您恢复使用 azurefile-csi
存储类的有状态应用程序时,恢复操作会保留在 Finalizing
阶段。(OADP-5508)
5.2.2.2. OADP 1.4.3 发行注记 复制链接链接已复制到粘贴板!
OpenShift API for Data Protection (OADP) 1.4.3 发行注记中列出了以下新功能。
5.2.2.2.1. 新功能 复制链接链接已复制到粘贴板!
版本 0.7.1 中的 kubevirt
velero 插件的显著变化
在这个版本中,kubevirt
velero 插件已更新至版本 0.7.1。主要改进包括以下程序错误修复和新功能:
- 当所有者虚拟机被排除时,备份不再会忽略虚拟机实例(VMI)。
- 对象图现在在备份和恢复操作过程中包括所有额外对象。
- 现在,在恢复操作过程中,可选生成的标签会添加到新的固件通用唯一标识符(UUID)中。
- 现在,可以在恢复操作期间切换虚拟机运行策略。
- 现在支持通过标签清除 MAC 地址。
- 现在,在备份操作过程中会跳过特定于恢复的检查。
-
现在支持
VirtualMachineClusterInstancetype
和VirtualMachineClusterPreference
自定义资源定义(CRD)。
5.2.2.3. OADP 1.4.2 发行注记 复制链接链接已复制到粘贴板!
OpenShift API for Data Protection (OADP) 1.4.2 发行注记列出了新功能、解决的问题和程序错误,以及已知的问题。
5.2.2.3.1. 新功能 复制链接链接已复制到粘贴板!
现在,可以使用 VolumePolicy 功能备份同一命名空间中的不同卷
在这个版本中,Velero 提供资源策略,以使用 VolumePolicy
功能备份同一命名空间中的不同卷。备份不同卷所支持的 VolumePolicy
功能包括 skip
, snapshot
, 和 fs-backup
操作。OADP-1071
文件系统 backup and data mover 现在可以使用短期凭证
文件系统 backup and data mover 现在可以使用短期凭证,如 AWS 安全令牌服务 (STS) 和 GCP WIF。现在,备份会在没有 PartiallyFailed
状态的情况下成功完成。OADP-5095
5.2.2.3.2. 已解决的问题 复制链接链接已复制到粘贴板!
现在,如果 VSL 包含不正确的供应商值,DPA 会报告错误
在以前的版本中,如果卷快照位置(VSL) spec 的供应商不正确,则数据保护应用程序(DPA)可以成功协调。在这个版本中,DPA 会报告错误并请求一个有效的供应商值。OADP-5044
对于使用不同 OADP 命名空间的备份和恢复,Data Mover 恢复可以成功。
在以前的版本中,当使用在一个命名空间中安装的 OADP 执行备份,但使用安装在不同命名空间中的 OADP 恢复时,Data Mover 恢复会失败。在这个版本中,Data Mover 恢复可以成功。OADP-5460
SSE-C 备份可用于计算的 secret 密钥的 MD5
在以前的版本中,备份失败并显示以下错误:
Requests specifying Server Side Encryption with Customer provided keys must provide the client calculated MD5 of the secret key.
Requests specifying Server Side Encryption with Customer provided keys must provide the client calculated MD5 of the secret key.
在这个版本中,解决了使用客户提供密钥(SSE-C) base64 和 MD5 哈希的 Server-Side 加密。因此,SSE-C 备份可用于计算的 secret 密钥的 MD5另外,customerKey
大小的不正确的 errorhandling
也被修复。OADP-5388
有关本发行版本中解决的所有问题的完整列表,请参阅 JIRA 中的 OADP 1.4.2 解决的问题列表。
5.2.2.3.3. 已知问题 复制链接链接已复制到粘贴板!
Data Mover restore 操作不支持 nodeSelector spec
当使用 nodeAgent
参数中设置的 nodeSelector
字段创建数据保护应用程序(DPA)时,Data Mover restore 部分会失败,而不是完成恢复操作。OADP-5260
当指定了 TLS 跳过验证时,S3 存储不会使用代理环境
在镜像 registry 备份中,当 insecureSkipTLSVerify
参数设置为 true
时,S3 存储不会使用代理环境。OADP-3143
Kopia 在备份过期后不会删除工件
在备份过期后,即使删除了备份,Kopia 也不会从 S3 位置的 ${bucket_name}/kopia/$openshift-adp
中删除卷工件。如需更多信息,请参阅"关于 Kopia 仓库维护"。OADP-5131
5.2.2.4. OADP 1.4.1 发行注记 复制链接链接已复制到粘贴板!
OpenShift API for Data Protection (OADP) 1.4.1 发行注记列出了新功能、解决的问题和程序错误,以及已知的问题。
5.2.2.4.1. 新功能 复制链接链接已复制到粘贴板!
新的 DPA 字段以更新客户端 qps 和 burst
现在,您可以使用新的数据保护应用程序 (DPA) 字段更改 Velero Server Kubernetes API 查询每秒(qps)和突发(burst)值。新的 DPA 字段是 spec.configuration.velero.client-qps
和 spec.configuration.velero.client-burst
,它们都默认为 100。OADP-4076
使用 Kopia 启用非默认算法
在这个版本中,您可以在 Kopia 中配置哈希、加密和分割程序算法来选择非默认选项来优化不同备份工作负载的性能。
要配置这些算法,在 DataProtectionApplication (DPA) 配置的 podConfig
部分中设置 velero
pod 的 env
变量。如果没有设置此变量,或者选择了一个不被支持的算法,Kopia 将默认为其标准算法。OADP-4640
5.2.2.4.2. 已解决的问题 复制链接链接已复制到粘贴板!
现在可以成功恢复没有 pod 的备份
在以前的版本中,恢复没有 pod 的备份,并将 StorageClass VolumeBindingMode
设置为 WaitForFirstConsumer
会导致 PartiallyFailed
状态出现错误:fail to patch dynamic PV, err: context deadline exceeded
。在这个版本中,会跳过对动态 PV 进行补丁,并可以成功恢复备份,不再会出现 PartiallyFailed
状态。OADP-4231
PodVolumeBackup CR 现在显示正确的消息
在以前的版本中,PodVolumeBackup
自定义资源 (CR) 会生成不正确的消息:get a podvolumebackup with status "InProgress" during the server starting, mark it as "Failed"
。在这个版本中,生成的消息是:
found a podvolumebackup with status "InProgress" during the server starting, mark it as "Failed".
found a podvolumebackup with status "InProgress" during the server starting,
mark it as "Failed".
现在,可以使用 DPA 覆盖 imagePullPolicy
在以前的版本中,OADP 将所有镜像的 imagePullPolicy
参数都设置为 Always
。在这个版本中,OADP 会检查每个镜像是否包含了 sha256
或 sha512
摘要,然后将 imagePullPolicy
设置为 IfNotPresent
; 否则 imagePullPolicy
被设置为 Always
。现在,您可以使用新的 spec.containerImagePullPolicy
DPA 字段覆盖此策略。OADP-4172
现在,如果初始更新失败,OADP Velero 现在可以重试更新恢复状态
在以前的版本中,OADP Velero 无法更新恢复的 CR 状态。这会无限期保留 InProgress
状态。依赖于备份和恢复 CR 状态以确定完成会失败的组件。在这个版本中,恢复的恢复 CR 状态可以正确地进入 Completed
或 Failed
状态。OADP-3227
从不同的集群恢复 BuildConfig 构建会成功,且没有任何错误
在以前的版本中,当从其他集群执行 BuildConfig
Build 资源恢复时,应用程序会在内部镜像 registry 的 TLS 验证过程中生成一个错误。错误信息 failed to verify certificate: x509: certificate signed by unknown authority
。在这个版本中,BuildConfig
构建资源恢复到不同的集群可以成功进行,而不会生成 failed to verify certificate
错误。OADP-4692
恢复空的 PVC 可以成功
在以前的版本中,在恢复空的持久性卷声明 (PVC) 时,下载数据会失败。这个失败带有以下错误:
data path restore failed: Failed to run kopia restore: Unable to load snapshot : snapshot not found
data path restore failed: Failed to run kopia restore: Unable to load
snapshot : snapshot not found
在这个版本中,在恢复空 PVC 时,下载数据的过程会正确处理,不会生成错误信息。OADP-3106
CSI 和 DataMover 插件中没有 Velero 内存泄漏的问题
在以前的版本中,使用 CSI 和 DataMover 插件会导致 Velero 内存泄漏。当备份结束时,Velero 插件实例不会被删除,在 Velero pod 中生成 内存不足(OOM
)条件前,内存泄漏会消耗内存。在这个版本中,当使用 CSI 和 DataMover 插件时,不会出现 Velero 内存泄漏的问题。OADP-4448
在相关 PV 被释放前,post-hook 操作不会启动
在以前的版本中,由于 Data Mover 操作的异步性,在 Data Mover 持久性卷声明 (PVC) 释放相关 pod 的持久性卷 (PV) 前,可能会尝试进行 post-hook 操作。此问题会导致备份失败,并显示 PartiallyFailed
状态。在这个版本中,在 Data Mover PVC 发布相关的 PV 前,才会启动 post-hook 操作,从而避免出现 PartiallyFailed
备份状态。OADP-3140
在带有超过 37 个字符的命名空间中部署 DPA 可以正常工作
当您在带有超过 37 个字符的命名空间中安装 OADP Operator 来创建新的 DPA 时,标记 "cloud-credentials" Secret 会失败,DPA 报告以下错误:
The generated label name is too long.
The generated label name is too long.
在这个版本中,在名称中有超过 37 个字符的命名空间中创建 DPA 不会失败。OADP-3960
恢复可以通过覆盖超时错误成功完成
在以前的版本中,在大规模环境中,恢复操作会导致 Partiallyfailed
状态并带有错误:fail to patch dynamic PV, err: context deadline exceeded
。在这个版本中,可以使用 resourceTimeout
Velero 服务器参数覆盖这个超时错误,从而使恢复可以成功完成。OADP-4344
有关本发行版本中解决的所有问题的完整列表,请参阅 JIRA 中的 OADP 1.4.1 解决的问题列表。
5.2.2.4.3. 已知问题 复制链接链接已复制到粘贴板!
恢复 OADP 后,Cassandra 应用程序 pod 进入 CrashLoopBackoff
状态
在 OADP 恢复后,Cassandra 应用程序 pod 可能会进入 CrashLoopBackoff
状态。要临时解决这个问题,删除在恢复 OADP 后返回错误 CrashLoopBackoff
状态的 StatefulSet
pod。然后,StatefulSet
控制器会重新创建这些 pod 并正常运行。OADP-4407
引用 ImageStream 的部署不会被正确恢复,并导致 pod 和卷内容被破坏
在文件系统备份(FSB)恢复操作中,引用 ImageStream
的 Deployment
资源没有被正确恢复。恢复运行 FSB 的 pod,postHook
会被提前终止。
在恢复操作过程中,OpenShift Container Platform 控制器会使用一个更新的 ImageStreamTag
哈希更新 Deployment
资源中的 spec.template.spec.containers[0].image
字段。更新会触发推出新的 pod,终止 velero
运行 FSB 和 post-hook 的 pod。有关镜像流触发器的更多信息,请参阅 触发镜像流更新。
这个行为的临时解决方案分为两个步骤:
执行排除了
Deployment
资源的恢复,例如:velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --exclude-resources=deployment.apps
$ velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --exclude-resources=deployment.apps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 第一次恢复成功后,通过包含这些资源来执行第二次恢复,例如:
velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --include-resources=deployment.apps
$ velero restore create <RESTORE_NAME> \ --from-backup <BACKUP_NAME> \ --include-resources=deployment.apps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.2.5. OADP 1.4.0 发行注记 复制链接链接已复制到粘贴板!
OpenShift API for Data Protection (OADP) 1.4.0 发行注记列出了已解决的问题和已知问题。
5.2.2.5.1. 已解决的问题 复制链接链接已复制到粘贴板!
恢复在 OpenShift Container Platform 4.16 中可以正常工作
在以前的版本中,当恢复已删除的应用程序命名空间时,恢复操作部分失败,在 OpenShift Container Platform 4.16 中会出现 resource name may not be empty
错误。在这个版本中,恢复在 OpenShift Container Platform 4.16 中可以正常工作。OADP-4075
Data Mover backups 在 OpenShift Container Platform 4.16 集群中可以正常工作
在以前的版本中,Velero 使用早期版本的 SDK,其中 Spec.SourceVolumeMode
字段不存在。因此,在带有 v4.2 版本的外部快照器上的 OpenShift Container Platform 4.16 集群中,Data Mover backups 会失败。在这个版本中,外部快照升级到 v7.0 及更新版本。因此,在 OpenShift Container Platform 4.16 集群中备份不会失败。OADP-3922
有关本发行版本中解决的所有问题的完整列表,请参阅 JIRA 中的 OADP 1.4.0 解决的问题列表。
5.2.2.5.2. 已知问题 复制链接链接已复制到粘贴板!
在没有为 MCG 设置 checksumAlgorithm 时,备份会失败
在对任何使用 Noobaa 作为备份位置的应用程序进行备份时,如果未设置 checksumAlgorithm
配置参数,备份会失败。要解决这个问题,如果您在 Backup Storage Location (BSL) 配置中没有为 checksumAlgorithm
提供值,则会添加一个空值。空值只为使用数据保护应用程序 (DPA) 自定义资源 (CR) 创建的 BSLs 添加,如果使用任何其他方法创建 BSL,则不会添加这个值。OADP-4274
有关本发行版本中所有已知问题的完整列表,请参阅 JIRA 中的 OADP 1.4.0 已知问题 列表。
5.2.2.5.3. 升级备注 复制链接链接已复制到粘贴板!
始终升级到下一个次版本。不要 跳过版本。要升级到更新的版本,请一次只升级一个频道。例如,若要从 OpenShift API for Data Protection (OADP) 1.1 升级到 1.3,首先升级到 1.2,然后再升级到 1.3。
5.2.2.5.3.1. 从 OADP 1.3 更改为 1.4 复制链接链接已复制到粘贴板!
Velero 服务器已从 1.12 版本更新至 1.14。请注意,数据保护应用程序 (DPA) 没有改变。
这会更改以下内容:
-
velero-plugin-for-csi
代码现在包括在 Velero 代码中,这意味着插件不再需要init
容器。 - Velero 将客户端 Burst 和 QPS 默认值分别从 30 和 20 改为 100 和 100。
velero-plugin-for-aws
插件更新了BackupStorageLocation
对象(BSLs)中的spec.config.checksumAlgorithm
字段的默认值,从""
(不计算 checksum) 改为CRC32
算法。知道 checksum 算法类型只能用于 AWS。几个 S3 供应商要求通过将 checksum 算法设置为""
来禁用md5sum
。使用您的存储供应商确认md5sum
算法支持和配置。在 OADP 1.4 中,为此配置在 DPA 中创建 BSL 的默认值为
""
。这个默认值表示没有检查md5sum
,它与 OADP 1.3 一致。对于在 DPA 中创建的 BSL,使用 DPA 中的spec.backupLocations[].velero.config.checksumAlgorithm
字段更新它。如果您的 BSLs 在 DPA 之外创建,您可以使用 BSLs 中的spec.config.checksumAlgorithm
来更新此配置。
5.2.2.5.3.2. 备份 DPA 配置 复制链接链接已复制到粘贴板!
您必须备份当前的 DataProtectionApplication
(DPA) 配置。
流程
运行以下命令来保存您当前的 DPA 配置:
示例命令
oc get dpa -n openshift-adp -o yaml > dpa.orig.backup
$ oc get dpa -n openshift-adp -o yaml > dpa.orig.backup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.2.5.3.3. 升级 OADP Operator 复制链接链接已复制到粘贴板!
在升级 OpenShift API for Data Protection (OADP) Operator 时,请使用以下步骤。
流程
-
将 OADP Operator 的订阅频道从
stable-1.3
改为stable-1.4
。 - 等待 Operator 和容器更新并重启。
5.2.2.5.4. 将 DPA 转换为新版本 复制链接链接已复制到粘贴板!
要从 OADP 1.3 升级到 1.4,则不需要数据保护应用程序 (DPA) 更改。
5.2.2.5.5. 验证升级 复制链接链接已复制到粘贴板!
使用以下步骤验证升级。
流程
运行以下命令,查看 OpenShift API for Data Protection (OADP) 资源来验证安装:
oc get all -n openshift-adp
$ oc get all -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证
DataProtectionApplication
(DPA) 是否已协调:oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
$ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
验证
type
被设置为Reconciled
。 运行以下命令,验证备份存储位置并确认
PHASE
为Available
:oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow