4.5. 备份应用程序数据
在很多情况下,您可以使用 oc rsync 命令备份应用程序数据,假设容器镜像中安装 rsync。Red Hat rhel7 基础镜像包含 rsync.因此,所有基于 rhel7 的镜像也都包含它。请参阅 对 CLI 操作进行故障排除和调试 - rsync。
警告
这是应用程序数据的通用备份,不会考虑特定于应用程序的备份过程,如数据库系统的特殊导出和导入步骤。
其他备份方法可能取决于您使用的持久性卷类型,如 Cinder、NFS 或 Gluster。
备份的路径也是特定于应用程序的路径。您可以通过查看 deploymentconfig 中的卷的 mountPath 来确定要备份的路径。
注意
只有在应用程序 pod 运行时,才能执行这类应用程序数据备份。
流程
备份 Jenkins 部署的应用程序数据的示例
从
deploymentconfig获取应用程序数据mountPath:oc get dc/jenkins -o jsonpath='{ .spec.template.spec.containers[?(@.name=="jenkins")].volumeMounts[?(@.name=="jenkins-data")].mountPath }'$ oc get dc/jenkins -o jsonpath='{ .spec.template.spec.containers[?(@.name=="jenkins")].volumeMounts[?(@.name=="jenkins-data")].mountPath }' /var/lib/jenkinsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 获取当前运行的 pod 的名称:
oc get pod --selector=deploymentconfig=jenkins -o jsonpath='{ .metadata.name }'$ oc get pod --selector=deploymentconfig=jenkins -o jsonpath='{ .metadata.name }' jenkins-1-37nuxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
oc rsync命令复制应用程序数据:oc rsync jenkins-1-37nux:/var/lib/jenkins /tmp/jenkins-backup/
$ oc rsync jenkins-1-37nux:/var/lib/jenkins /tmp/jenkins-backup/Copy to Clipboard Copied! Toggle word wrap Toggle overflow