目录
引言
YS1000是国产企业级Kubernetes应用的备份容灾商业解决方案,为企业提供易于使用、可扩展、安全的解决方案,用于Kubernetes核心容器应用在多云架构下的备份恢复、容灾保护及迁移。这次YS1000 2.10版本发布了很多客户要求的新功能,其中一个对以前的钩子程序进行了升级, 增加了钩子程序的管理,并且可以更灵活的定义钩子程序, 可以分别在任务执行前,执行后或者任务失败后执行钩子程序,钩子程序的定义支持多种脚本或者远程命令。
本文使用Wordpress应用恢复做为例子, 介绍了通过使用一个远程程序命令创建的钩子程序,在恢复wordpress 应用后, 灵活地更改wordpress的副本数量。
实验环境
-
Kubernetes 版本
kubectl get node NAME STATUS ROLES AGE VERSION ecs-e224-0001 Ready control-plane,master 24d v1.23.8
-
YS1000 版本
helm list -n ys1000 NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION qiming-operator ys1000 1 2022-12-08 15:26:49.765681838 +0800 CST deployed ys1000-2.10.2 2.10.2
-
确认备份前应用的wordpress pod数量为1个
kubectl -n wordpress get pods NAME READY STATUS RESTARTS AGE wordpress-7bd5fcc587-k7hjw 1/1 Running 0 104m wordpress-mysql-6478987597-gcpkg 1/1 Running 0 104m kubectl -n wordpress get deployment NAMEREADY UP-TO-DATE AVAILABLE AGE wordpress 1/1 1 1 104m wordpress-mysql 1/1 1 1 104m
实验步骤
创建钩子程序
- 在YS1000 UI左侧导航栏选择钩子程序,在页面右侧点击创建钩子程序
- 输入钩子程序名称, 选择目标集群unlimited
- 在执行任务列表里选择任务执行之后, 选择远程程序命令, 并输入修改副本的命令
bash -c kubectl -n wordpress scale --replica=3 deployment wordpress
- 点击创建后,在页面上可以看到新创建的钩子程序
创建应用备份任务
- 在YS1000 UI左侧导航栏选择集群应用备份,点击创建应用备份
- 填入备份计划名称,选择备份仓库
- 选择应用所在的集群和命名空间
- 选择备份策略,点击下一步直到完成
- 启动一个备份任务。 这个备份中的wordpress应用只有一个wordpress pod 副本
创建应用恢复任务并应用钩子程序
- 创建一个ys1000的恢复任务,输入任务名称和目标集群, 点击下一步
- 选择全部恢复, 点击下一步
- 默认恢复策略, 点击下一步
- 默认高级恢复选项, 点击下一步
- 点击启用钩子程序,在恢复后执行处选择创建好的modify-replica钩子程序名称,点击完成
- 等待wordpress 应用恢复完成
- 点击详情页面,可以看到恢复任务的执行步骤
检验钩子程序效果
使用命令查看在目标集群中的wordpress应用的wordpress pod 副本数量为3, 恢复后钩子程序修改副本数量成功
[root@ecs-e224-0008 ~]# kubectl -n wordpress get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
wordpress 3/3 3 3 8m34s
wordpress-mysql 1/1 1 1 8m34s
[root@ecs-e224-0008 ~]# kubectl -n wordpress get pods
NAME READY STATUS RESTARTS AGE
wordpress-7bd5fcc587-6vj46 1/1 Running 0 67s
wordpress-7bd5fcc587-k7hjw 1/1 Running 0 8m38s
wordpress-7bd5fcc587-zj4vg 1/1 Running 0 67s
wordpress-mysql-6478987597-gcpkg 1/1 Running 0 8m38s
总结
以上执行步骤通过简单的定义一个更改pod副本数量的钩子程序, 在wordpress 应用恢复后,ys1000自动执行了钩子程序从而达到了将副本数量按需更改的目的,并且钩子程序可以在以后的恢复任务中重复使用。