当前位置: 首页 > news >正文

用jsp做网站需要的知识网页制作平台的是

用jsp做网站需要的知识,网页制作平台的是,vi设计公司 成都,网络营销方案有哪些云原生专栏大纲 文章目录 Velero与etcd介绍Velero与etcd备份应用场景Velero与etcd在k8s备份上的区别 Velero备份恢复流程备份工作流程Velero备份时#xff0c;若k8s集群发送变化#xff0c;会发发生情况#xff1f;Velero 备份pv#xff0c;pv中数据变化#xff0c;会发发…云原生专栏大纲 文章目录 Velero与etcd介绍Velero与etcd备份应用场景Velero与etcd在k8s备份上的区别 Velero备份恢复流程备份工作流程Velero备份时若k8s集群发送变化会发发生情况Velero 备份pvpv中数据变化会发发生情况 恢复工作流程 k8s中etcd备份恢复Velero备份恢复准备工作安装minio登录minio创建Buckets 安装velero版本选择安装velero配置velero认证环境部署velero到Kubernetes集群中 卸载veleroVelero用法常用Velero命令备份namespace定时备份删除备份备份高级应用场景介绍 使用velero迁移k8s集群使用velero备份k8s集群备份环境要求备份Storageclass备份k8s集群所有namespace 使用velero还原k8s集群准备工作确认还原顺序还原kube-system还原Storageclass还原kubesphere-system还原kubesphere插件 还原企业空间项目还原namespace验证持久卷数据是否备份验证方式1验证方式2验证方式3验证方式4 备份恢复持久化数据验证 群晖NAS数据同步到云盘WebDAV介绍备份到百度网盘备份到阿里云其他备份工具 容灾和恢复运维团队需要制定容灾计划和恢复策略包括定期备份数据、建立冷备份站点、制定灾难恢复计划等以应对可能的灾难事件并尽快恢复系统的正常运行。 Velero与etcd介绍 Velero和etcd都是用于备份和恢复的工具但它们的应用场景和备份对象有所不同。 VeleroVelero是一个开源的备份和恢复工具用于在Kubernetes集群中进行应用和数据的备份和恢复。它可以备份和还原整个Kubernetes集群中的资源对象包括Pod、Deployment、Service、ConfigMap等。Velero提供了全量备份和增量备份的功能并支持将备份数据存储在多种后端存储介质中如云存储、NFS、对象存储等。Velero还提供了恢复策略和调度功能可以按需进行备份和恢复操作支持自动化的备份和恢复流程。etcd快照备份etcd是一个分布式键值存储系统常用于存储Kubernetes集群的状态数据。etcd存储了Kubernetes集群的配置信息、服务发现信息和运行时状态等重要数据。etcd的快照备份是将etcd的数据进行全量备份以便在需要时进行恢复。etcd提供了内置的快照备份和恢复功能可以通过etcdctl命令行工具或API进行备份和恢复操作。etcd快照备份通常用于保护etcd数据的完整性和可用性以防止数据丢失或损坏。 综上所述Velero主要用于备份和恢复Kubernetes集群中的应用和资源对象而etcd快照备份则专注于备份和恢复etcd存储的数据。Velero提供了更全面的备份和恢复功能适用于整个Kubernetes集群的备份和恢复操作而etcd的快照备份则更专注于etcd数据的备份和恢复用于保护etcd存储的数据的完整性和可用性。在使用时可以根据具体需求选择合适的工具进行备份和恢复操作。 Velero与etcd备份应用场景 Velero和etcd备份在Kubernetes环境中有不同的应用场景 Velero的应用场景 灾难恢复Velero可以用于整个Kubernetes集群的灾难恢复。通过备份和恢复资源对象可以在发生灾难性事件如硬件故障、数据中心故障时快速恢复整个集群的状态。迁移和复制Velero可以用于将Kubernetes集群中的应用程序和资源对象迁移到其他环境如生产环境到测试环境的迁移。它还可以用于复制集群以便在不同的地理位置或云提供商之间创建备份和冗余。测试和开发环境Velero可以用于创建测试和开发环境的快速副本。通过备份和还原资源对象可以在不影响生产环境的情况下进行测试、调试和开发工作。 etcd备份的应用场景 etcd数据的完整性保护etcd是Kubernetes集群的关键组件存储了集群的配置信息、状态数据等。etcd的备份用于保护etcd数据的完整性以防止数据丢失或损坏。在发生etcd数据丢失或损坏的情况下可以使用备份进行恢复。节点故障恢复当etcd集群中的节点发生故障时可以使用etcd的备份进行节点故障恢复。通过恢复备份可以重新建立故障节点的etcd数据并使整个集群恢复正常运行。etcd集群的迁移在进行etcd集群的迁移时可以使用etcd的备份功能。通过备份和还原etcd数据可以将etcd集群从一个环境迁移到另一个环境如从本地环境迁移到云环境。 综上所述 Velero适用于整个Kubernetes集群的备份和恢复适用于灾难恢复、迁移和复制、测试和开发环境等场景。etcd备份主要用于保护etcd数据的完整性和可用性适用于etcd数据的灾难恢复、节点故障恢复和etcd集群的迁移。根据具体的需求和情况可以选择合适的备份工具和策略来满足备份和恢复的需求。etcd 快照备份适用于比较严重的集群灾难。比如所有 etcd 集群所有节点宕机快照文件丢失损坏的情况。Velero 适用于集群迁移k8s 子集备份恢复比如基于命名空间备份。某个命名空间误删且 YAML 文件没有备份那么可以 Velero 快速恢复。涉及多API资源对象 的系统升级可以做升级前备份升级失败通过 Velero 快速恢复。 Velero与etcd在k8s备份上的区别 在Kubernetes备份方面Velero和etcd有以下区别 备份对象 VeleroVelero可以备份和恢复整个Kubernetes集群中的资源对象包括应用程序的部署、服务、配置、存储卷等。它可以备份和还原多个命名空间中的对象并支持选择性备份和恢复。etcdetcd是Kubernetes集群的分布式键值存储存储了集群的配置信息、状态数据等。etcd备份主要针对etcd存储的数据进行全量备份和恢复包括集群配置、服务发现、持久卷声明等。 备份粒度 VeleroVelero支持灵活的备份策略可以进行全量备份和增量备份。增量备份只备份自上次备份以来发生更改的资源对象减少备份数据的大小和备份时间。etcdetcd的备份是全量备份每次备份都会包含所有的etcd数据。etcd的备份是基于时间点的每个备份都是一个完整的快照用于恢复到特定时间点的状态。 备份工具 VeleroVelero是一个独立的备份和恢复工具可以与Kubernetes集群集成使用。它提供了命令行界面和API以及与各种后端存储介质如云存储、对象存储、NFS等的集成。etcdetcd自带了备份和恢复的功能可以使用etcdctl命令行工具或API进行备份和恢复操作。etcd的备份数据通常存储在本地文件系统中。 应用场景 VeleroVelero适用于整个Kubernetes集群的备份和恢复包括应用程序和资源对象的完整性。它可以用于灾难恢复、迁移和测试环境的复制等场景。etcdetcd备份主要用于保护etcd数据的完整性和可用性。它可以用于etcd数据的灾难恢复、节点故障恢复以及etcd集群的迁移。 综上所述Velero和etcd在Kubernetes备份方面有不同的应用和重点。Velero用于备份和恢复整个Kubernetes集群中的资源对象而etcd备份主要用于保护etcd存储的数据的完整性和可用性。根据具体的备份需求可以选择合适的工具来进行备份和恢复操作。通常情况下使用Velero进行整个Kubernetes集群的备份同时使用etcd的备份功能来保护etcd数据的安全和可用性。 Velero备份恢复流程 Velero客户端调用Kubernetes API Server创建Backup任务。Backup控制器基于watch机制通过API Server获取到备份任务。Backup控制器开始执行备份动作,其会通过请求API Server获取需要备份的数据。Backup 控制器将获取到的数据备份到指定的对象存储server端。 备份工作流程 当运行时 velero backup createVelero 客户端调用 Kubernetes API 服务器来创建一个 Backup 对象。BackupController 通知新对象Backup并执行验证。BackupController 开始备份过程。它通过查询 API 服务器的资源来收集要备份的数据。调用对象存储服务BackupController 例如 AWS S3以上传备份文件。 默认情况下velero backup create 为任何持久卷制作磁盘快照。您可以通过指定额外的标志来调整快照。运行 velero backup create --help 以查看可用标志。可以使用选项禁用快照 --snapshot-volumesfalse。 Velero备份时若k8s集群发送变化会发发生情况 在使用 Velero 进行 Kubernetes 集群备份时如果集群发生变化例如添加、删除或修改了资源可能会导致一些问题。这些问题可能包括以下情况 资源丢失如果您在备份之后添加了新的资源而在恢复时没有包含这些资源那么这些资源将会丢失。资源冲突如果您在备份之后删除了某些资源而在恢复时仍然尝试恢复这些资源那么将会发生冲突。资源状态不一致如果备份期间某些资源的状态发生了变化例如 Pod 的状态、持久卷的状态等那么在恢复时可能会导致状态不一致的问题。 为了避免这些情况建议在进行 Velero 备份之前确保集群处于稳定状态并且没有进行重大的更改操作。此外您还可以定期备份以确保数据的完整性并测试备份的恢复过程以验证其可靠性。  另外值得注意的是Velero 本身提供了一些机制来处理某些变化例如通过标签选择器来排除或包含特定的资源。您可以根据自己的需求和情况使用 Velero 提供的选项来管理备份和恢复过程中的变化。 Velero 备份pvpv中数据变化会发发生情况 Velero 备份 PV 的过程是通过创建 PV 快照Snapshot来实现的。快照是 PV 数据的一个静态副本用于后续的恢复操作。但是快照只会捕获创建时刻的 PV 数据状态并不会实时跟踪 PV 数据的变化。  如果在快照创建后PV 中的数据发生了变化例如文件被修改、删除或添加那么在使用 Velero 进行恢复时恢复的 PV 数据将不包含这些变化的内容。恢复的 PV 数据将与创建快照时的状态相同可能导致数据不一致性的问题。  为了避免这种情况建议在进行 Velero 备份之前确保 PV 中的数据是一致的并且没有进行重大的更改操作。如果您需要备份实时更新的 PV 数据可以考虑使用其他工具或方法如数据同步工具如 rsync或数据库备份工具来定期备份 PV 中的数据。  另外注意 Velero 也提供了一些选项来处理 PV 数据的变化例如通过使用 Velero 插件或钩子来在备份和恢复期间处理数据的一致性。您可以根据自己的需求和情况使用 Velero 提供的功能来管理 PV 数据的备份和恢复过程中的变化。 恢复工作流程 当运行时 velero restore createVelero 客户端调用 Kubernetes API 服务器来创建一个 Restore 对象。RestoreController 通知新的 Restore 对象并执行验证。从对象存储服务中 RestoreController 获取备份信息。然后它对备份的资源进行一些预处理以确保这些资源可以在新集群上运行。例如使用 备份的 API 版本来验证还原资源是否可以在目标集群上运行。RestoreController 启动还原过程一次还原每个符合条件的资源。 默认情况下Velero 执行非破坏性恢复这意味着它不会删除目标集群上的任何数据。如果备份中的资源已存在于目标集群中Velero 将跳过该资源。您可以将 Velero 配置为使用更新策略而不是使用 --existing-resource-policy 恢复标志。当此标志设置为 时 updateVelero 将尝试更新目标集群中的现有资源以匹配备份中的资源。 k8s中etcd备份恢复 具体操作参考K8S集群etcd备份与恢复  在 Kubernetes (K8s) 中etcd 是用于存储集群配置和状态的关键组件。进行 etcd 备份和恢复的过程如下 备份 etcd 数据 登录到运行 etcd 的主节点或任意 etcd 成员节点。停止 kube-apiserver 服务以确保 etcd 数据不再发生变化。创建 etcd 数据的备份。可以使用 etcdctl 命令行工具或其他工具进行备份。以下是使用 etcdctl 进行备份的示例命令ETCDCTL_API3 etcdctl snapshot save --endpoints。其中 是备份文件的名称 是 etcd 集群的端点地址。备份文件将保存在 etcdctl 命令运行的当前目录中。 恢复 etcd 数据 登录到运行 etcd 的主节点或任意 etcd 成员节点。停止 kube-apiserver 服务。删除 etcd 数据目录。默认情况下etcd 数据目录位于 /var/lib/etcd。使用 etcdctl 进行数据恢复。以下是使用 etcdctl 进行恢复的示例命令ETCDCTL_API3 etcdctl snapshot restore --data-dir --initial-cluster --initial-cluster-token --initial-advertise-peer-urls。其中 是备份文件的名称 是 etcd 数据目录的路径 是 etcd 集群的初始配置 是集群令牌 是 etcd 成员节点的地址。启动 kube-apiserver 服务。 请注意进行 etcd 备份和恢复时需要小心操作确保备份文件的完整性和一致性并在恢复之前备份现有的数据以防止数据丢失。此外etcd 的版本和配置也可能会影响备份和恢复的具体步骤请参考官方文档或相关资源以获取更详细的信息。 Velero备份恢复准备工作 安装minio minio在这里是用来保存velero的备份数据如果你有其它对象存储服务也可以用它们来替换minio。minio官网https://min.io/  minio中文网站http://www.minio.org.cn/ 在群辉中部署minio # 可参考 https://docs.min.io/docs/minio-docker-quickstart-guide.html version: 3 services:minio:image: minio/minio:latest container_name: minio restart: unless-stopped volumes: - ./minio/data:/data- ./minio/minio:/minio- ./minio/config:/root/.minioenvironment: TZ: Asia/ShanghaiLANG: en_US.UTF-8MINIO_PROMETHEUS_AUTH_TYPE: publicMINIO_ACCESS_KEY: root # 登录账号MINIO_SECRET_KEY: password # 登录密码command: server /data --console-address :9090 --address :9000ports: # 映射端口- 9000:9000 # 文件上传预览端口- 9090:9090 # 控制台访问端口 登录minio创建Buckets 安装velero 版本选择 velero版本和k8s版本关系 高版本velerov12.3出现上述问题原因是参数名称改变了参考https://github.com/vmware-tanzu/velero/issues/7123https://github.com/vmware-tanzu/velero/releases/v1.10.0版本一下参数变更 此处小编将velero版本换为1.9.3重新执行如下 安装velero 下载https://github.com/vmware-tanzu/velero/releases amd64也称为x86-64或x64是基于Intel和AMD的64位x86架构它是目前最常见和广泛使用的桌面和服务器处理器架构。arm64也称为AArch64是基于ARM架构的64位处理器架构主要用于移动设备、嵌入式系统和服务器领域。 wget https://github.com/vmware-tanzu/velero/releases/download/v1.12.3/velero-v1.12.3-linux-amd64.tar.gztar -xvf velero-v1.12.3-linux-amd64.tar.gz# 也可不用将velero移动后续在解压目录执行 cp velero /usr/local/bin/# 验证是否安装成功 velero version # 运行该命令会有部分错误信息该错误可能是由于Velero服务器未正确安装或配置导致的。确保Velero服务器已成功安装到Kubernetes集群中并且已正确配置和运行。配置velero认证环境 创建Velero和minio的凭证 # 使用下述命令创建凭证文件 cat credentials-velero eof [default] aws_access_key_id root aws_secret_access_key password eof# 查看创建文件路径安装velero会用到 [rootksmaster21 velero]# pwd /opt/software/velero # 凭证路径为/opt/software/velero/credentials-veleroaws_access_key_id和aws_secret_access_key 为安装minio是配置的账号密码分别对应MINIO_ACCESS_KEY和MINIO_SECRET_KEY 部署velero到Kubernetes集群中 velero部署 aws插件与velero版本对应关系https://github.com/vmware-tanzu/velero-plugin-for-awsvelero版本换为1.9.3velero/velero-plugin-for-aws版本v1.5.5 # https://zhuanlan.zhihu.com/p/557868296 velero install \--provider aws \--bucket ks-data \--use-restic \--secret-file /opt/software/credentials-velero \--use-volume-snapshotsfalse \--plugins velero/velero-plugin-for-aws:v1.5.5 \--backup-location-config regionminio,s3ForcePathStyletrue,s3Urlhttp://192.168.31.3:9000# 指定命名空间默认velero --namespace velero \ # 尝试执行添加如下内容--dry-run -o yaml velero.yaml这是一个用于安装Velero并配置AWS作为备份提供商的命令。下面是对每个选项的解释 –provider aws: 指定Velero的备份提供商为AWS这将配置Velero以使用AWS提供的备份和恢复功能。–bucket ks-data: 指定Velero备份存储桶的名称为ks-data这是用于存储备份数据的AWS S3存储桶。–use-restic: 启用Restic备份插件用于增量备份和恢复数据。Restic是一种轻量级的备份工具可提供更快的备份和恢复速度。–secret-file /opt/software/velero/credentials-velero: 指定Velero用于访问AWS服务的凭据文件的路径。该文件应包含访问AWS的凭据信息如访问密钥和密钥ID。–use-volume-snapshotsfalse: 禁用使用卷快照进行备份的功能。这意味着Velero将不会使用卷快照来备份数据而是使用其他备份方法。–plugins velero/velero-plugin-for-aws:v1.0.0: 指定要安装的Velero插件。在此命令中安装了名为velero-plugin-for-aws的插件并指定了版本为v1.0.0。该插件提供了与AWS相关的备份和恢复功能。–namespace velero-systemvelero部署到的命名空间会自动创建命名空间–backup-location-config regionminio,s3ForcePathStyle“true”,s3Urlhttp://192.168.31.3:9000: 配置Velero备份位置的详细信息。在此命令中备份位置设置为使用MinIO对象存储服务MinIO的URL为http://192.168.31.3:9000并指定了存储桶的区域为minio。s3ForcePathStyle选项设置为true以指示使用路径样式的S3 URL。 通过执行此命令Velero将被安装并配置为使用AWS作为备份提供商将备份数据存储在指定的S3存储桶中。使用Restic插件进行增量备份并配置备份位置为MinIO对象存储服务。 高版本velero出现上述问题原因是参数名称改变了参考https://github.com/vmware-tanzu/velero/issues/7123 此处小编将velero版本换为1.9.2重新执行显示如下内内容表示成功 Velero is installed! ⛵ Use kubectl logs deployment/velero -n velero-system to view the status.验证velero部署 $ kubectl get pod -n velero-systemNAME READY STATUS RESTARTS AGE restic-7hsck 1/1 Running 0 52s restic-jbx2v 0/1 ContainerCreating 0 52s restic-kf8p2 0/1 ContainerCreating 0 52s restic-m87bf 1/1 Running 0 52s restic-ntq2b 0/1 ContainerCreating 0 52s velero-fbf774ff4-6c4h6 0/1 Init:0/1 0 52s卸载velero 如果您想从集群中完全卸载Velero则以下命令将删除由velero install创建的所有资源: # 查看资源确定删除资源 kubectl get crds -l componentvelero kubectl get clusterrolebindings.rbac.authorization.k8s.io | grep velero# 删除velero kubectl delete namespace/velero clusterrolebinding/velero kubectl delete crds -l componentveleroVelero用法 常用Velero命令 以下是一些常用的Velero命令并以表格形式输出 命令描述velero install安装Velero到Kubernetes集群velero create backup创建备份将指定的资源对象备份到备份存储位置velero delete backup删除备份velero restore恢复备份将指定的备份还原到Kubernetes集群中velero get backups获取备份列表velero describe backup查看备份的详细信息velero get restores获取恢复列表velero describe restore查看恢复的详细信息velero schedule create创建备份调度任务定期自动执行备份操作velero schedule get获取备份调度任务列表velero schedule delete删除备份调度任务velero plugin add添加Velero插件用于扩展Velero功能velero plugin list列出已安装的Velero插件velero version查看Velero版本信息velero logs查看Velero组件的日志 备份namespace 备份命令模板 # 备份持久数据需添加--default-volumes-to-restic velero backup create 备份名称 --include-namespaces 命名空间名称 --default-volumes-to-restic# 上述是备份单个namespace备份整个k8s如下 velero backup create backup-name --include-namespacesnamespace1,namespace2,... --default-volumes-to-restic # 建议单个namespace备份还原backup选项 –exclude-namespaces stringArray : 要从备份中排除的名称空间–incremental 表示创建一个增量备份–exclude-resources stringArray: 要从备份中排除的资源如storageclasses.storage.k8s.io–include-cluster-resources optionalBool[true]: 包含集群资源类型–include-namespaces stringArray: 要包含在备份中的名称空间(默认’*)–include-resources stringArray: 备份中要包括的资源–labels mapStringString: 给这个备份加上标签-o, --output string: 指定输出格式支持’table’、‘json’和’yaml’-l, --selector labelSelector: 对指定标签的资源进行备份–snapshot-volumes optionalBool[true]: 对 PV 创建快照–storage-location string: 指定备份的位置–ttl duration: 备份数据多久删掉–volume-snapshot-locations strings: 指定快照的位置也就是哪一个公有云驱动–default-volumes-to-restic指示 Velero 在备份过程中使用 Restic 来备份默认卷。Restic 是一个用于备份和还原 Kubernetes 资源的工具它可以提供更灵活的备份和还原选项。 执行备份操作会在minio中生成如下目录在 Velero 备份过程中生成的 backups、restic 和 restores 目录分别存放着不同的数据和信息。 backups 目录 backups 目录存放着 Velero 创建的备份文件。每个备份都是一个独立的目录其中包含了备份的资源和状态信息。这些备份文件通常包括 Kubernetes 资源清单如 Deployment、Pod、Service 等以及其他与备份相关的元数据。这些备份文件通常以压缩的 tar 形式存储并命名为 .tar.gz。 restic 目录 restic 目录是 Velero 与 Restic 集成时使用的目录。Restic 是一个用于备份和恢复数据的开源工具。当 Velero 使用 Restic 进行备份时它会将数据存储在 restic 目录中。此目录通常包含备份的数据块和索引文件。这些数据文件通常以对象存储的形式进行存储例如 Amazon S3 或其他支持的对象存储。 restores 目录 该目录存储 Velero 创建的恢复点restore point文件。当您使用 Velero 进行恢复操作时它会创建一个恢复点文件其中包含要还原的资源清单、恢复的状态以及与恢复操作相关的元数据。这些恢复点文件通常以压缩的 tar 形式存储并命名为 .tar.gz。 定时备份 # 使用cron表达式备份每天的凌晨 1 点备份 $ velero schedule create 备份计划的名称 --schedule0 1 * * * --include-namespaces 备份的namespace# 使用一些非标准的速记 cron 表达式--scheduledaily# 手动触发定时任务 $ velero backup create --from-schedule nginx-daily–schedule更多cron示例请参考cron package’s documentation–schedule“daily” 参数表示备份计划将在每天的午夜00:00执行备份操作。这是一种简化的调度时间表表示法用于指定每天的固定时间执行备份。在使用 --schedule“daily” 参数时不需要指定具体的小时和分钟。它等效于 --schedule“0 0 * * *”表示每天的午夜00:00执行备份。这个参数可以方便地创建每天固定时间执行备份的计划而不必关注具体的小时和分钟设置。如果您希望每天在固定时间进行备份操作–schedule“daily” 是一个简单且方便的选项。 删除备份 # 删除备份删除多个空格隔开 velero backup delete backup-name # 组合命令删除全部备份 velero backup get -o jsonpath{.items[*].metadata.name} | xargs -n 1 velero backup delete以下是 velero backup delete 命令的所有参数以表格形式输出 参数描述–all删除所有备份。–confirm在执行删除操作之前进行确认。–dry-run执行模拟运行不实际删除备份。–selector根据资源选择器删除符合条件的备份。–all-namespaces删除所有命名空间中的备份。–all-resources删除备份中的所有资源类型。–kubeconfig指定用于访问 Kubernetes 集群的 kubeconfig 文件的路径。–kubecontext指定要使用的 Kubernetes 集群上下文的名称。–log-level设置日志级别。可选值panic、fatal、error、warn、info、debug。–namespace限定删除操作在指定的命名空间中执行。–wait等待删除操作完成后再返回。–timeout设置等待删除操作完成的超时时间。默认为 5m5 分钟。 备份高级应用场景介绍 备份分全量和增量备份全量备份整个k8s集群可以防止k8s崩溃恢复后续只需增量备份编写脚本可定时备份mysql等数据通过封装脚本操作和minio可开发容灾恢复平台 使用velero迁移k8s集群 使用velero备份k8s集群 备份环境要求 迁移项目最好保证两个Kubernetes集群版本一致。为了保证PV数据成功迁移两边需要安装好相同名字的StorageClass。可以自己部署Minio也可以使用公有云的对象存储服务如华为的OBS、阿里的OSS等。 备份Storageclass 查看Storageclass # kubectl get storageclassNAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE nfs-client (default) cluster.local/nfs-client-nfs-client-provisioner Delete Immediate false 19d rook-ceph-block rook-ceph.rbd.csi.ceph.com Delete Immediate true 5d1h 备份Storageclass kubectl get sc storageclassname -o yaml storageclassname.yamlkubectl get sc nfs-client -o yaml nfs-client-storageclass.yaml kubectl get sc rook-ceph-block -o yaml rook-ceph-block-storageclass.yaml拷贝Storageclass到待恢复的k8s集群 scp -r storageclassname.yaml root192.168.0.8:/root/待恢复的k8s集群还原storageclass kubectl apply -f storageclassname.yaml备份k8s集群所有namespace 查看namespace [rootksmaster21 velero-v1.9.3-linux-amd64]# kubectl get namespaces NAME STATUS AGE argocd Active 19d base Active 19d cert-manager Active 14d default Active 19d dev Active 12d devops Active 12d devopskf4zz Active 12d halo Active 25h kube-node-lease Active 19d kube-public Active 19d kube-system Active 19d kubekey-system Active 19d kubesphere-controls-system Active 19d kubesphere-devops-system Active 19d kubesphere-devops-worker Active 19d kubesphere-logging-system Active 19d kubesphere-monitoring-federated Active 19d kubesphere-monitoring-system Active 19d kubesphere-system Active 19d nacos Active 24h pro Active 12d registry-proxy Active 7d3h rook-ceph Active 6d21h test Active 13d tidb Active 3d14h tidb-admin Active 2d15h tidb-cluster Active 2d15h velero-system Active 36m weave Active 19d备份内容主要分为三部分 备份k8s kube-system无需备份pv持久卷备份kubespherekubesphere-system备份pv持久卷插件无需备份pv持久卷kubesphere日志插件建议使用外部存储日志占用大量存储空间外部存储就不用备份pv备份企业空间项目需备份pv持久卷 备份namespace 执行如下备份命令要备份PV时间比较久耐心等待 # 备份k8s kube-system velero backup create kube-system-bak --include-namespaces kube-system# 备份kubesphere velero backup create kubesphere-system-bak --include-namespaces kubesphere-system --default-volumes-to-restic \ velero backup create kubesphere-controls-system-bak --include-namespaces kubesphere-controls-system \ velero backup create kubesphere-monitoring-system-bak --include-namespaces kubesphere-monitoring-system \ velero backup create kubesphere-monitoring-federated-bak --include-namespaces kubesphere-monitoring-federated \ velero backup create kubesphere-logging-system-bak --include-namespaces kubesphere-logging-system \ velero backup create kubesphere-devops-system-bak --include-namespaces kubesphere-devops-system \ velero backup create argocd-bak --include-namespaces argocd \ velero backup create kubesphere-devops-worker-bak --include-namespaces kubesphere-devops-worker \ velero backup create weave-bak --include-namespaces weave # 备份企业空间项目 velero backup create cert-manager-bak --include-namespaces cert-manager --default-volumes-to-restic \ velero backup create registry-proxy-bak --include-namespaces registry-proxy --default-volumes-to-restic \ velero backup create base-bak --include-namespaces base --default-volumes-to-restic \ velero backup create tidb-admin-bak --include-namespaces tidb-admin --default-volumes-to-restic \ velero backup create tidb-cluster-bak --include-namespaces tidb-cluster --default-volumes-to-restic \ velero backup create rook-ceph-bak --include-namespaces rook-ceph --default-volumes-to-restic查看备份列表 # 查看备份列表状态为Completed表示完成Completed velero backup get查看备份详情 # 查看备份详情 velero backup describe 备份名称查看备份日志 velero backup logs 备份名称登入minio控制台查看备份内容 使用velero还原k8s集群 准备工作 使用kubekey快速安装k8s集群2. 云原生实战之kubesphere搭建在k8s集群中安装velero若master需要调度需修改污点比如rook-ceph用到了master 这个命令是使用 kubectl 工具来修改节点的污点Taint。让我来逐步解释每个部分的含义 kubectl taint nodes master-restore node-role kubernetes.io/master:Noschedule-lnode/master-restore untaintedkubectl taint nodes这是 kubectl 命令的一部分用于操作节点的污点。master-restore这是节点的名称表示要对名为 master-restore 的节点进行操作。node-role这是污点的键key用于标识污点的目的。在这种情况下node-role 可能是自定义的键用于指示节点的角色。kubernetes.io/master:Noschedule-lnode/master-restore这是污点的值value用于进一步描述污点的属性。在这种情况下kubernetes.io/master:Noschedule-lnode/master-restore 是一个示例值可能表示节点是主节点master且不允许调度Noschedule。untainted这是要应用于节点的新值用于移除现有的污点。通过指定 untainted命令将删除节点上与指定键和值匹配的污点。 因此该命令的目的是将名为 master-restore 的节点上与 node-role 键和 kubernetes.io/master:Noschedule-lnode/master-restore 值匹配的污点移除使该节点不再受该污点的限制。这样其他 Pod 将可以在该节点上调度和运行。 确认还原顺序 大致还原顺序如下 还原kube-system还原storageclass还原kubesphere还原企业空间项目 还原kubesphere-system和kubesphere-system顺序必须在第一和第二 # 查看备份 velero backup get | grep -w bak还原kube-system 还原备份 # 查看备份信息 velero backup get# 还原 velero restore create --from-backup kube-system-bak可执行截图中红色提示命令查看恢复日志和详情 #查看恢复信息 # STATUS为Completed表示完成恢复 velero restore get velero restore get 命令用于列出当前集群中的恢复操作。当你使用 Velero 进行备份并希望恢复数据时可以使用该命令来查看已经执行的恢复操作的状态和详细信息。执行该命令后你将看到一个表格其中包含以下列 NAME恢复操作的名称。BACKUP关联的备份的名称。STATUS恢复操作的当前状态如 InProgress进行中、Completed已完成或 Failed失败。WARNINGS如果有任何警告将显示警告的数量。ERRORS如果有任何错误将显示错误的数量。CREATED恢复操作创建的时间。 通过查看该命令的输出你可以了解到当前集群中的恢复操作的状态以及任何可能的警告或错误信息以便进行故障排除或监视恢复过程。 查看nfs是否恢复 kubectl get pod -A | grep nfs查看Storageclass是否恢复 # 执行结果No resources found表示没有Storageclass kubectl get storageclass还原Storageclass 还原storageclass 在还原kube-system后是因为nfs-client-nfs-client-provisioner部署在kube-system空间下 还原storageclass kubectl apply -f storageclassname.yaml老集群nfs-client-nfs-client-provisioner在kube-system空间下如下 nfs使用的群辉数据在集群外新集群还原使用的是老集群已有的数据 rook-ceph在集群内这儿恢复会有问题可将老集群硬盘迁移至新集群 还原kubesphere-system 还原kubesphere-system # 查看备份信息 velero backup get# 还原 velero restore create --from-backup kubesphere-system-bak查看恢复信息 velero restore get 查看pod情况 # 通过下述命令观察错误pod kubectl get pods -A # 通过下述命令查看pod详情信息 kubectl describe pod pod-name -n namespace查看可能会出现很多异常情况异常是因为组件之间可能有依赖情况此处耐心等待所有组件恢复 验证是否能登录kubesphere控制台 注意恢复还原后密码不是原来密码重置为了kubesphere安装时的初始密码Pw0rd 还原kubesphere插件 velero restore create --from-backup kubesphere-controls-bak \ velero restore create --from-backup kubesphere-monitoring-bak \ velero restore create --from-backup kubesphere-monitoring-federated-bak \ velero restore create --from-backup kubesphere-logging-system-bak \ velero restore create --from-backup kubesphere-devops-system-bak \ velero restore create --from-backup argocd-bak \ velero restore create --from-backup kubesphere-devops-worker-bak \ velero restore create --from-backup weave-bak还原企业空间项目 还原namespace 创建企业空间 创建项目 验证是否还原到创建企业空间项目下 # 还原registry-proxy项目 velero restore create --from-backup registry-proxy-bak查看控制面板中是在企业空间项目下还原验证还原成功 按照上述在kubesphere控制台创建项目执行下述命令还原 velero restore create --from-backup cert-manager-bak \ velero restore create --from-backup registry-proxy-bak \ velero restore create --from-backup base-bak \ velero restore create --from-backup tidb-admin-bak \ velero restore create --from-backup tidb-cluster-bak2 \ velero restore create --from-backup rook-ceph-bak验证持久卷数据是否备份 以下验证结论备份没有备份PV持久数据原因是在备份时pod还在使用的PV不能进行备份 验证方式1 在老集群创建mysql并修改数据新集群恢复后查看。在原来集群dev项目下mysql中创建了test表如下备份集群查看mysql如下 验证方式2 查看持久卷声明新旧集群持久卷yaml中使用nfs路径如下发现新集群没有用老集群持久卷 /volume5/ks/kubesphere-system-minio-pvc-b1b26a83-29b2-4361-8849-3b8d7784eb80 /volume5/ks/kubesphere-system-minio-pvc-f07441d5-3a35-4074-aada-3a0024e1c4ce验证方式3 删除老集群中删除mysql通过velero恢复查看数据 验证方式4 查看企业空间是否恢复企业空间不会恢复 验证应用路由恢复了应用路由但是网关地址没有 验证项目网关配置未恢复网关配置 查看eip资源 [rootks41 eip]# kubectl get eip error: the server doesnt have a resource type eip发现没有参考4. 云原生之kubesphere基础服务搭建安装 此处可能会遇到openelb恢复失败的情况通过下述命令删除然后通过应用商店安装 kubectl get clusterroles --show-labels -A | grep openkubectl get clusterroles --show-labels -A | grep open | awk {print $1} | xargs kubectl delete clusterrolekubectl get clusterroles --show-labels -A获取所有 ClusterRole 资源并显示它们的标签。grep open在结果中过滤出包含 “open” 的行。awk ‘{print $1}’提取出每行的第一个字段即 ClusterRole 的名称。xargs kubectl delete clusterrole将 ClusterRole 的名称作为参数传递给 kubectl delete clusterrole 命令逐个删除这些资源。 请注意这是一个危险的操作会直接删除与搜索结果匹配的所有 ClusterRole 资源。在执行此命令之前请确保您了解其影响并确保您具有足够的权限来执行删除操作。建议在生产环境中谨慎使用并先进行适当的测试。 备份恢复持久化数据验证 若想备份持久化数据备份需要添加–default-volumes-to-restic参数 # 备份 velero backup create 备份名称 --include-namespaces namespace --default-volumes-to-restic# 还原 velero restore create --from-backup 备份名称老集群mysql数据如下新集群恢复后myql数据如下对比持久卷路径并不一样 /volume5/ks/dev-mysql-dev-pvc-0d3fd22f-4c42-457b-859f-302d08724609 /volume5/ks/dev-mysql-dev-pvc-a855beff-b63f-4a76-8f1f-6c021fbd59bc由此得出结论没添加–default-volumes-to-restic是备份元数据添加后会将持久数据备份到minio 删除之前备份添加参数重新备份 # 查看备份信息 velero backup get # 删除备份 velero backup delete backup-name # 组合命令删除全部备份 velero backup get -o jsonpath{.items[*].metadata.name} | xargs -n 1 velero backup delete查看minio备份已删除 群晖NAS数据同步到云盘 上述操作将k8s数据备份到了minio中k8s中挂载的数据都是通过群辉NFS进行挂载即k8s全部数据都在群辉上。考虑到自建服务器稳定性万一服务器硬件损坏、断电就凉凉了此时小编将群晖NAS数据同步到网盘上。 WebDAV介绍 WebDAVWeb Distributed Authoring and Versioning是一种基于HTTP协议的扩展旨在使用户能够通过网络对远程服务器上的文件进行编辑和管理。它提供了一组用于创建、修改和删除文件的标准方法并支持文件和文件夹的属性管理。WebDAV最初是为了解决Web上的协作和文档管理问题而设计的。它扩展了HTTP协议引入了许多新的方法和头部以便支持高级文件操作如锁定文件、复制、移动和重命名文件等。以下是WebDAV的一些关键功能和特点 文件操作WebDAV通过HTTP方法扩展了文件操作包括创建、读取、更新和删除文件。它使用URI来标识文件并通过HTTP请求来执行这些操作。文件锁定WebDAV支持文件级别的锁定机制以防止多个用户同时编辑同一文件。它使用锁定机制来协调并发编辑操作确保数据的一致性。属性管理WebDAV允许用户为文件和文件夹定义自定义属性并通过HTTP头部进行管理。这些属性可以包括元数据、权限信息、版本号等。集成性WebDAV可以与现有的应用程序和协议进行集成如文件管理器、文档编辑器和版本控制系统等。它提供了标准的接口和方法使得开发者可以轻松地将WebDAV功能集成到他们的应用中。平台无关性WebDAV是基于HTTP协议的标准扩展因此它可以在不同的操作系统和平台上使用。无论是Windows、Mac还是Linux只要支持HTTP协议就可以使用WebDAV进行文件管理。 WebDAV在许多领域都有广泛的应用例如在线协作、文档管理、远程文件访问等。它为用户提供了方便的方式来管理和共享文件同时也为开发者提供了一种标准化的协议来构建和集成文件管理功能。请注意WebDAV的功能和特性可能因实现方式和服务器配置而有所不同。具体实现和配置细节可以参考相关的WebDAV服务器文档或规范。 备份到百度网盘 备份相当于将数据上传到百度网盘上传是很快的但是从百度网盘下载或者同步到群辉较慢。 群辉中启动Cloud Sync 浏览器中登录百度云后点击上述下一步可检查到登录的百度网盘账号 配置备份任务 查看备份进度 查看备份速度 备份到阿里云 [新版教程] 阿里云盘通过Docker挂载本地WebDAV实现全自动上传/下载 - 蓝点网 安装aliyundrive-webdav aliyundrive-webdav官网github | aliyundrive-webdav refresh token 获取官网docker安装方式 docker run -d --namealiyundrive-webdav --restartunless-stopped -p 8080:8080 \-v /etc/aliyundrive-webdav/:/etc/aliyundrive-webdav/ \-e REFRESH_TOKENyour refresh token \-e WEBDAV_AUTH_USERadmin \-e WEBDAV_AUTH_PASSWORDadmin \messense/aliyundrive-webdav改造为docker-compose.yaml version: 3.1 services:webdav:# 注意请仔细检查下载的镜像如果下载的是冒充的镜像可能会导致你的数据泄露image: messense/aliyundrive-webdavrestart: alwaysuser: rootcontainer_name: webdavports:- 9876:8080volumes:- ./aliyundrive-webdav/:/etc/aliyundrive-webdav/- /etc/localtime:/etc/localtimeenvironment:# 通过获取连接https://messense-aliyundrive-webdav-backendrefresh-token-ucs0wn.streamlit.app- REFRESH_TOKEN your refresh token - WEBDAV_AUTH_USERadmin # webdav的账号- WEBDAV_AUTH_PASSWORDadmin # webdav的密码# - TZAsia/Shanghai# - JAVA_OPTS-Xms128m -Xmx1024m安装 docker-compose up -d验证aliyundrive-webdav是否启动成功 # 查看容器id docker ps | grep webdav # 查看日志 docker logs 容器id出现如下日志则表示安装启动成功 配置阿里云和群辉 在阿里云盘根目录下新建群辉备份数据目录并上传了[阿里云上文件.txt] 在群辉nas共享目录下上传了[群辉上文件.txt文件] 群辉中启动Cloud Sync选择WebDAV 配置webdav-aliyundriver 服务器地址群辉ipaliyundrive-webdav容器暴露端口 账号密码为安装aliyundrive-webdav设置的 点击下一步进入任务配置 登录阿里云盘发现同步了群辉数据 查看群辉挂载路径发现同步了阿里云数据 其他备份工具 上述是基于群辉Cloudsync里进行数据同步和备份若想脱离群辉在集群系统上则需安装相应同步软件这儿介绍几款 软件名称开发公司主要特点GoodSyncSiber Systems强大的文件同步和备份工具支持多种同步方式和丰富的筛选、调度功能CloudSyncSynology将数据同步到各种云存储服务的应用程序rsync开源项目命令行工具支持增量备份、差异传输和压缩等功能。可用于服务器之间的数据同步和备份SyncBack2BrightSparks强大的文件备份和同步工具提供灵活的配置选项和多种同步模式Duplicati开源项目开源备份软件支持将文件备份到云存储服务并具有加密和压缩功能ArqHaystack Software备份工具可将文件备份到云存储服务并提供版本控制和恢复功能 阿里云只能查看当前目录大小只计算了当前目录下文件大小和不会保护子目录。这儿推荐阿里云盘如何查看整个文件夹大小
http://www.zqtcl.cn/news/729457/

相关文章:

  • 淘宝美工做兼职的网站多多返利网站建设
  • 如何承接设计网站建设电商平台开发流程
  • 安康做网站简洁高端的wordpress个人博客
  • 酒店网站建设协议手机怎么做销售网站
  • 屏蔽网站接口js广告seminar
  • 谁有手机网站啊介绍一下wordpress 流量插件
  • 杭州网站公司google网站建设
  • 莱芜住房和城乡建设厅网站网站头部设计
  • 织梦响应式茶叶网站模板邯郸最新通告今天
  • 深圳公司网站改版通知做网站分类链接
  • 电子商务网站建设答案网络运营与维护
  • 网站登陆怎么做网站app的区别
  • 获取网站缩略图工信部2017网站备案
  • 有哪些网站可以做ps挣钱自己制作游戏
  • 旅游网站开发团队四川住房和城乡建设网站
  • 网站框架设计商城网站制作需要多少费用
  • 网站建设哪个公司个人网站做哪种能赚钱
  • 福建建设人才与科技发展中心seo导航站
  • 修文县生态文明建设局网站郑州制作网站哪家好
  • 泉州网站优化排名东莞长安做网站公司
  • 网站制作公司 顺的有口碑的赣州网站建设
  • 成都网站设计制作苏州新闻
  • 黑色网站设计iis 网站 红
  • 专业做家居的网站佛山做网站永网
  • 医疗网站建设讯息企业门户网站建设思路
  • 四川建设安全监督管理局网站网站传送门怎么做
  • 哪家网站做推广好优化师和运营区别
  • 鹰潭网站建设公司南宁行业平台开发公司
  • 织梦如何仿手机网站源码奉贤区专业建网站
  • 上海网站建设接单wordpress htaccess 404