使用YS1000自动发现KubeSphere的workspace,并备份workspace中所有应用

目录

引言

实验环境

部署部署YS1000

创建workspace及其应用

自动发现workspace并备份

恢复workspace及其应用

小结


引言

KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,平台内置的多租户设计,让不同的团队能够在一个平台中不同的企业空间下,更安全地从云端到边缘部署云原生应用。 其中提到的企业空间,也就是workspace,方便的隔离了企业内部团队的应用。详见 https://v2-1.docs.kubesphere.io/docs/zh-CN/platform-management/workspace-management/

如果想对上述workspace进行备份,首先需要了解workspace中包含的资源:

  1. 一个 name 为 test-workspace-1 的 Workspace 资源,这是一个 cluster 级别的资源
  2. 一个 name 为 test-workspace-1 的 WorkspaceTemplate 资源,这是一个 cluster 级别的资源
  3. 带有 label: kubesphere.io/workspace=test-workspace-1 的 WorkspaceRole 和 WorkspaceRoleBinding 资源, 这些是 cluster 级别的资源
  4. 上一步的 WorkspaceRoleBinding 中涉及到的 User 资源,这些是 cluster 级别的资源
  5. 上一步的 User 中涉及到的 GlobalRole 和 GlobalRoleBinding 资源,这些是 cluster 级别的资源
  6. 带有 label: kubesphere.io/workspace=test-workspace-1 的其他 cluster 级别的资源,如 ResourceQuotas, HelmRepo 等
  7. 带有 label: kubesphere.io/workspace=test-workspace-1 的 namespace,以及里面的所有资源

综上可以看出,一个 workspace 里面包含了非常多的资源,虽然大部分的资源都带有同样的 label,但还是有些非常重要的资源是没有这样的 label 的,并且这些资源(包括里面的 namespace 以及其中的资源)随着项目的创建和修改都是在动态变化的。

如果使用常见的备份工具,几乎不可能通过一个或者多个备份将这些资源动态地备份下来,就算是真的能备份,中间也少不了一些手工的操作,整个过程非常复杂而且容易出错。 但是如果使用 YS1000 对 workspace 进行备份,整个过程就会变得非常顺畅。因为 YS1000 借助于其自研的强大的备份模版功能,可以将上述过程在一次备份里面全部完成,而且不需要任何手工介入。

更方便的是,YS1000 还可以动态发现 KubeSphere 集群里所有的 worksapce,并且对 workspace 的每一次备份,都是动态备份其当下的所有应用和对应资源。 此外,YS1000 的应用发现页面中还提供了资源预览的功能,可以列出所有将要备份的资源的名称,让你在任何时候都可以对你要备份的资源有一个直观的感受。

本文就如何快速的通过银数多云数据管家的最新版本 YS1000 v2.10 查找workspace的资源,并快速备份和恢复workspace作一个简单介绍。

实验环境

  • YS1000宿主集群配置:
kubectl get node -o wide
NAME          STATUS   ROLES                  AGE   VERSION    INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-RUNTIME
test-master   Ready    control-plane,master   22h   v1.20.15   172.17.0.11   <none>        CentOS Linux 7 (Core)   3.10.0-1160.62.1.el7.x86_64   docker://19.3.14
test-worker   Ready    <none>                 21h   v1.20.15   172.17.16.2   <none>        CentOS Linux 7 (Core)   3.10.0-1160.62.1.el7.x86_64   docker://19.3.14
  • 青云KubeSphere环境配置:
kubectl get node -o wide
NAME          STATUS   ROLES                  AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION       CONTAINER-RUNTIME
master1       Ready    control-plane,master   25h   v1.21.5   172.16.0.4    <none>        Ubuntu 18.04.6 LTS   4.15.0-166-generic   docker://20.10.8
worker-p001   Ready    worker                 25h   v1.21.5   172.16.0.3    <none>        Ubuntu 18.04.6 LTS   4.15.0-166-generic   docker://20.10.8
worker-p002   Ready    worker                 25h   v1.21.5   172.16.0.5    <none>        Ubuntu 18.04.6 LTS   4.15.0-166-generic   docker://20.10.8

kubectl get sc
NAME                          PROVISIONER     RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
csi-high-capacity (default)   csi-qingcloud   Delete          Immediate           true                   25h
csi-high-capacity-legacy      csi-qingcloud   Delete          Immediate           true                   25h
csi-high-perf                 csi-qingcloud   Delete          Immediate           true                   25h
csi-neonsan                   csi-qingcloud   Delete          Immediate           true                   25h
csi-ssd-enterprise            csi-qingcloud   Delete          Immediate           true                   25h
csi-standard                  csi-qingcloud   Delete          Immediate           true                   25h
csi-super-high-perf           csi-qingcloud   Delete          Immediate           true                   25h
  • s3备份仓库使用腾讯云的cos(也可以是其他的云平台的对象存储,或者使用自己搭建的minio)

部署部署YS1000

使用helm安装YS1000免费版,详见

https://github.com/jibutech/helm-charts/blob/main/README.md

使用手册详见

https://github.com/jibutech/docs/blob/main/user_guide/ys1000-user-guide-v2.10.md

安装完成后查看YS1000版本:

helm list -A
NAME            NAMESPACE               REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
qiming-operator qiming-migration        1               2022-12-23 19:07:56.458502247 +0800 CST deployed        qiming-operator-2.10.3  2.10.3     

创建workspace及其应用

  • 我们使用KubeSphere的前端创建两个新的workspace

  • 点击进入其中一个workspace,创建几个project

  • 部署完应用后,查看运行状态

自动发现workspace并备份

  • 使用以下cmd获得YS1000的service,并在浏览器上登陆YS1000(使用密码登录admin/passw0rd)
kubectl -n qiming-migration get svc ui-service-default
NAME                 TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
ui-service-default   NodePort   10.96.0.153   <none>        9000:30180/TCP   7h
  • 点击左侧导航栏“集群信息”,点击“添加集群”按钮,选择k8s发行版:KubeSphere 或 QKE,并保存,等待集群部署组件完成,在页面中显示“已就绪”。

  • 点击左侧导航栏“集群应用备份”,点击“创建应用备份任务”按钮,输入备份名称和备份仓库;

点击下一步,选择qke集群,在选择应用下拉框中选择"工作空间",并在右侧下拉框中选择其中一个test-workspace-1,其他默认选项即可,就能针对test-workspace-1进行备份;

点击下一步,选择备份策略(可选预置策略snapshot-bronze);后续选项默认不勾选,直接点击完成,备份计划创建成功。

  • 等待备份计划“已就绪”后,点击备份计划右侧的操作按钮,点击备份进行一次手动备份(想验证数据的话也可以在备份前通过mongo-client连接mongodb插入一些数据);

在备份任务完成后,点击“详情”按钮,再点击资源列表,可以看到只有workspace相关资源,没有其他helm应用的资源。

  • 针对 workspace 的备份计划创建后,后台会自动创建对应的受管应用和备份模版,点击左侧导航栏“应用管理”,切换到“备份模版”,并可以点击操作中的预览按钮查看备份内容。

基于预览的结果,也可以点击操作中的修改按钮调整备份模版的内容,比如添加一些你认为遗漏的资源,完成后 YS1000 会把这些定制化的资源同时应用到备份计划中,让你可以在一个备份中同时备份标准资源和定制化资源。

恢复workspace及其应用

接下来,我们模拟一次误删workspace的操作,然后通过ys1000恢复。

  1. 在qke前端直接删除整个test-workspace-1

  • 使用YS1000 的应用备份进行恢复,点击备份任务右侧“恢复”按钮,输入恢复名称和恢复的目标集群(还是选择qke集群);

点击下一步选择默认全部资源;

点击下一步,默认立即恢复即可;再点击下一步,选择与原来存储相同的目标存储,其他默认选项即可,最后点击下一步跳过钩子程序,点击完成。

  • 恢复计划创建成功后展开恢复任务,点击右侧“激活”恢复任务。

  • 等待恢复任务完成后,登录qke前端检查workspace及其应用的恢复情况(如果备份前有插入过数据也可以顺便查看一下数据库中的数据正确性)。

小结

随着云原生生态的越发成熟,有不少企业选择 KubeSphere 作为其容器平台,并通过workspace隔离不同团队的应用,本文利用YS1000银数多云数据管家, 简化了KubeSphere 中的workspace 的动态备份和恢复操作, 可助力企业达成 KubeSphere workspace级别的应用灾备、迁移和 DevOps 等目标,从而保证了企业云原生应用的弹性和可靠性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值