每天分享最新软件开发,Devops,敏捷,测试以及项目管理最新,最热门的文章,每天花3分钟学习何乐而不为,希望大家点赞,加关注,你的支持是我最大的动力。
Velero 是用于 Kubernetes 集群灾难恢复的开源备份和恢复工具。它还支持集群资源的迁移和持久卷备份。手动或计划备份到外部存储,确保您的数据安全和保护。
你可以利用 Velero 完成以下任务:
您可以在 Virtuozzo 应用程序平台上轻松地将 Velero 备份与 Kubernetes 集群集成在一起。只需按照下面的简单步骤:
1.首先组织与 S3兼容的存储,Velero 将使用它来存储您的备份。例如,可以使用 AWS S3、 VHI S3或 MinIO 集群。
在我们的指南中,我们将继续使用后一个选项,以便您可以在同一个平台下进行整个设置。您可以使用 Marketplace (按照链接指南中的步骤)在 Virtuozzo 应用平台上安装 MinIO 集群。
安装完成后,您将看到您的 MinIO 安装凭证(也通过电子邮件发送):
等待第一台服务器格式化磁盘。
2.连接到 MinIO 集群的管理面板,并在存储集群中创建一个新的 bucket (例如 velero)。
3.找到最新的 vmware-tanzu/velero 版本(在我们的示例中是 v1.8.1) ,单击下载部分中的链接并将 URL 复制到 linux amd64归档文件。
提示: 在我们的示例中,我们将把 velero 二进制文件直接上传到 Kubernetes 集群服务器。但是,您可以通过对集群的 API 访问将它保存在任何地方(例如本地)。
4.通过 SSH (例如 Web SSH)连接到 Kubernetes 集群控制平面。使用前面步骤中的链接下载归档文件,并将 velero 二进制文件解压缩到/usr/local/sbin 目录。
Shell
wget https://github.com/vmware-tanzu/velero/releases/download/v1.8.1/velero-v1.8.1-linux-amd64.tar.gzbrtar -zxvf velero-v1.8.1-linux-amd64.tar.gz -C /usr/local/sbin --strip-components=1 velero-v1.8.1-linux-amd64/velero注意: 如果通过文件管理器上传,则需要调整文件权限:
Shell
chmod 755 /usr/local/sbin/velero5. 创建/root/凭据-velero 文件并放入 S3存储凭据(参见第一步) :
属性文件
[default]braws_access_key_id = {accessKey}braws_secret_access_key = {secretKey}6.通过提供正确的值来调整下面的命令,并执行它来部署 Velero。以下占位符需要调整:
Shell
velero install --provider aws --plugins velero/velero-plugin-for-aws:v1.4.1 --bucket {bucket} --secret-file ./credentials-velero --use-volume-snapshots=true --backup-location-config region=default,s3ForcePathStyle="true",s3Url={s3Url} --image {image} --snapshot-location-config region="default" --use-restic我们使用 AWS 模拟来处理 S3和静态附加组件,因为我们有 NFS 存储,而没有本机快照功能。
7.让我们部署一个带存储和挂载的测试应用程序来测试 Velero 如何执行备份。我们将使用以下示例应用程序:
Shell
wget https://www.virtuozzo.com/application-platform-docs/kubernetes-velero-backups/test-instance.yamlbrkubectl apply -f test-instance.yaml您可以使用以下命令检查应用程序:
Shell
kubectl get pods,pvc,pv -n test-nginx执行下面列出的命令以生成一些随机数据,这些数据将模拟应用程序的使用情况。
Shell
kubectl -n test-nginx exec -it nginx-test -- /bin/bashbrdd if=/dev/urandom of=/usr/share/nginx/html/test-file3.txt count=512000 bs=1024brls -laSh /usr/share/nginx/html/brexit8.您需要对应用程序吊舱进行注释,以确保备份中包含 NFS 存储数据。您可以从已部署的应用程序获得所需的存储名称(在我们的示例中是 myStorage)。
注意: 如果没有注释,PV 和 PVC 定义将被复制,但数据不会被复制。
Shell
kubectl -n test-nginx annotate pod/nginx-test backup.velero.io/backup-volumes=mystorage9. 现在,让我们为您的测试应用程序创建一个备份:
Shell
velero backup create test-nginx-b4 --include-namespaces test-nginx --wait10. 检查你的 minIO 存储器,应该有来自 Velero 和 restic 的数据。
另外,检查创建的备份是否存在并且正常。
Shell
velero get backups11. 让我们完全删除示例应用程序,以正确地测试恢复过程。
Shell
kubectl delete ns test-nginx还要清理共享存储数据(在/data 目录中)。
12. 准备就绪后,使用以下命令从备份中恢复应用程序:
Shell
velero restore create --from-backup test-nginx-b4就是这样! 您可以验证所有东西,包括存储的数据,都已还原。
Velero 通过调度支持备份过程自动化。您可以通过 cron 表示法(使用 UTC 时区)创建所需的调度模板。一般语法如下:
Shell
velero schedule create {scheduleName} --schedule="{schedule}"1. 使用下表作为参考,使用标准 cron 表达式设置所需的进度表:
角色位置 | 角色时期 | 可接受价值 |
1 | Minute 等一下 | 0-59,* 0-59,* |
2 | Hour 一小时 | 0-23,* 0-23,* |
3 | Day of Month 每月的一天 | 1-31,* 1-31,* |
4 | Month 月份 | 1-12,* 1-12,* |
5 | Day of Week 星期几 | 0-7,* 0-7,* |
例如,每6小时创建一次备份:
Shell
velero schedule create myschedule --schedule="0 */6 * * *"2.调度还可以使用@every { 期间}语法表示。可以使用秒(s)、分(m)和小时(h)的组合来指定持续时间。
例如,每6小时创建一次备份:
Shell
velero schedule create myschedule --schedule="@every 6h"3.可以通过专用参数添加其他调度选项(以备份特定名称空间、设置备份的生存期等)。使用帮助标志查看参数的完整列表:
Shell
velero schedule create --help恭喜! 现在您知道如何使用 Velero 自动备份 Kubernetes 项目了。
| 留言与评论(共有 0 条评论) “” |