好久不写博客了,一是忙,二是懒。工作日忙,周末懒。
写博客是个好习惯,要坚持。
最近在研究k8s数据备份与还原以及集群迁移相关的东西,翻译一篇velero的文档。


Resource filtering 资源过滤

按名称空间、类型或标签过滤对象。
本文介绍如何将包含和排除标志与 velero backupvelero restore 命令一起使用。
默认情况下,当不使用过滤选项时,Velero 会将所有对象包含在备份或还原中。

当同时包含通配符和特定资源时,通配符优先。

Includes 包含

通过include选项使得备份或恢复仅包括特定资源,排除所有其他资源(没被指定的其他资源)。

  1. namespace
  2. resource
  3. cluster-resource
  4. 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

包括集群范围的资源。此选项可以具有三个可能的值:

  1. true: 包括所有集群范围的资源。
  2. false: 不包括集群范围的资源。
  3. 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,那么即使这个资源包含标签选择器对应的标签,也不会被备份。

总结

资源的备份和恢复可以使用多个选项组合实现灵活备份与恢复。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐