通过容器服务sidecar方式接入定时任务SchedulerX

背景信息

SchedulerX是阿里巴巴自研的一站式分布式任务调度平台(兼容开源XXL-JOB/ElasticJob),支持Cron定时、一次性任务、任务编排、分布式跑批,具有高可用、可视化、可运维、低延时等能力。自带日志服务、监控大盘、短信报警等企业级服务。

通过该文章,不需要对业务和镜像进行改造,只需要在Kubernetes的deployment文件(Pod、Deployment、StatefulSet、Job等都支持)中新增一个sidecar配置,就可以将定时任务托管到SchedulerX平台,拥有白屏运维、可视化和监控报警能力,比如:

  • 批量运维:在SchedulerX控制台编辑shell脚本,定时广播所有pod,执行shell脚本(比如清理业务日志),在控制台查看运行结果。
  • 业务幂等:在SchedulerX控制台编辑python脚本,每小时幂等调度一个pod执行脚本,清理数据库历史数据。
  • 业务安全:想要定时调度业务的http服务,不需要将业务的http服务不会暴露给公网,只需要在SchedulerX的控制台编辑http脚本(比如"curl 127.0.0.1/hello"),会自动调度某个pod内的该http服务。
  • 监控告警:在SchedulerX控制台编辑python脚本,每分钟调度一个pod执行脚本,如果执行失败,发送短信/电话/钉钉/邮件告警。

接入原理

通过sidecar接入schedulerx-agent的原理如下图

每个pod中,都会有一个schedulerx-agent的容器,和业务容器在同一个pod中。schedulerx-agent会和任务调度SchedulerX服务端进行通信。SchedulerX服务端进行定时任务的调度和路由分发,决定分给某个/某些pod中的schedulerx-agent,schedulerx-agent收到调度命令,再去业务容器中执行对应的任务。

前提条件

配置sidecar

登录你的Kubernetes集群,编辑deployment,增加schedulerx-agent的sidecar配置,比如

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-schedulerx-sidecar-demo
  labels:
    app: hello-schedulerx-sidecar-demo
spec:
  replicas: 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值