【k8s】velero数据备份与恢复时的资源过滤(指定ns/资源/label)------翻译
k8s velero灵活资源备份和恢复
好久不写博客了,一是忙,二是懒。工作日忙,周末懒。
写博客是个好习惯,要坚持。
最近在研究k8s数据备份与还原以及集群迁移相关的东西,翻译一篇velero的文档。
Resource filtering 资源过滤
按名称空间、类型或标签过滤对象。
本文介绍如何将包含和排除标志与 velero backup
和 velero restore
命令一起使用。
默认情况下,当不使用过滤选项时,Velero 会将所有对象包含在备份或还原中。
当同时包含通配符和特定资源时,通配符优先。
Includes 包含
通过include选项使得备份或恢复仅包括特定资源,排除所有其他资源(没被指定的其他资源)。
- namespace
- resource
- cluster-resource
- selector
include-namespaces
指定要备份或恢复的namespace,默认为*,即全部的namespace。
备份namespace中的资源
velero backup create <backup-name> --include-namespaces <namespace>
恢复两个命名空间及其对象
velero restore create <restore-name> --include-namespaces <namespace1>,<namespace2> --from-backup <backup-name>
include-resources
要包含在备份中的 Kubernetes 资源,格式为 resource.group,例如 storageclasses.storage.k8s.io(使用 * 表示所有资源)。
备份集群中的所有deployment
velero backup create <backup-name> --include-resources deployments
恢复集群中的所有deployment和configmap
velero restore create <restore-name> --include-resources deployments,configmaps --from-backup <backup-name>
备份某个namespace中的deployment
velero backup create <backup-name> --include-resources deployments --include-namespaces <namespace>
这个例子是同时指定了--include-namespaces
参数和--include-resources
参数.
include-cluster-resources
包括集群范围的资源。此选项可以具有三个可能的值:
- true: 包括所有集群范围的资源。
- false: 不包括集群范围的资源。
- nil (auto或不指定):
3.1 备份或恢复所有命名空间时包括集群范围的资源。默认值:true。
3.2 使用命名空间过滤时,不包括集群范围的资源。默认值:false。就是说,如果指定了命名空间但是没指定这个参数,那么这个参数的值就是false。
备份整个集群,包括集群范围的资源
velero backup create <backup-name>
仅恢复集群中的命名空间资源
velero restore create <restore-name> --include-cluster-resources=false --from-backup <backup-name>
备份命名空间并包含集群范围的资源
velero backup create <backup-name> --include-namespaces <namespace> --include-cluster-resources=true
selector
标签选择器让备份和恢复的资源粒度更加细,备份和恢复也更加灵活。
包括与标签选择器匹配的资源
velero backup create <backup-name> --selector <key>=<value>
包含与选择器不匹配的资源
velero backup create <backup-name> --selector <key>!=<value>
Excludes 排除
从备份中排除特定资源。
exclude-namespaces
要排除的namespace
从集群备份中排除 kube-system
velero backup create <backup-name> --exclude-namespaces kube-system
在还原期间排除两个命名空间
velero restore create <restore-name> --exclude-namespaces <namespace1>,<namespace2> --from-backup <backup-name>
exclude-resources
排除资源
要排除的Kubernetes资源,格式为resource.group,如storageclasses.storage.k8s.io。
从备份中排除secrets
velero backup create <backup-name> --exclude-resources secrets
排除secrets和rolebindings
velero backup create <backup-name> --exclude-resources secrets,rolebindings
velero.io/exclude-from-backup=true
带有标签 velero.io/exclude-from-backup=true
的资源不包含在备份中,即使它包含匹配的选择器标签。
也就是说,如果一个资源包含velero.io/exclude-from-backup
标签并且值为true,那么即使这个资源包含标签选择器对应的标签,也不会被备份。
总结
资源的备份和恢复可以使用多个选项组合实现灵活备份与恢复。
更多推荐
所有评论(0)