如何可视化编写和编排你的k8s任务

本文介绍了如何使用阿里云SchedulerX实现Kubernetes任务的快速开发和编排,提供可视化脚本任务解决方案,完全兼容原生K8s Job,并支持任务的历史记录、日志服务和报警监控。通过对比Kubernetes原生解决方案,强调了SchedulerX在简化容器服务使用、任务重跑和工作流编排方面的优势。
摘要由CSDN通过智能技术生成

简介

K8s Job是Kubernetes中的一种资源,用来处理短周期的Pod,相当于一次性任务,跑完就会把Pod销毁,不会一直占用资源,可以节省成本,提高资源利用率。

阿里任务调度SchedulerX和云原生结合,重磅推出可视化k8s任务,针对脚本使用者,屏蔽了容器服务的细节,不用构建镜像就可以让不熟悉容器的同学(比如运维和运营同学)玩转k8s Job,受益容器服务带来的降本增效福利。针对容器使用者,SchedulerX不但完全兼容原生的k8s Job,还能支持历史执行记录、日志服务、重跑任务、报警监控、可视化任务编排等能力,为企业级应用保驾护航。架构图如下:

特性一:快速开发k8s可视化脚本任务

Kubernetes的Job,常见用来做离线数据处理和运维工作(比如每天凌晨2点把mysql数据同步到大数据平台,每隔1小时更新一次redis缓存等),一般以脚本实现居多。这里以一个简单的场景举例子,来对比两种方案的差异。

Kubernetes原生解决方案

K8s调度的最小单位是Pod,想跑脚本任务,需要提前把脚本打包到镜像里,然后在YAML文件中配置脚本命令,下面以通过python脚本查询数据库为例子:

1. 编写python脚本demo.py

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打开数据库连接
db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB", charset='utf8' )

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE \
WHERE INCOME > %s" % (1000)
try:
    # 执行SQL语句
    cursor.execute(sql)
    # 获取所有记录列表
    results = cursor.fetchall()
    for row in results:
        fname = row[0]
        lname = row[1]
        age = row[2]
        sex = row[3]
        income = row[4]
        # 打印结果
        print "fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \
        (fname, lname, age, sex, income )
        except:
            print "Error: unable to fetch data"
            
            # 关闭数据库连接
db.close()

2. 编写Dockerfile

FROM python:3

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY demo.py /root/demo.py

CMD [ "python", "/root/demo.py" ]

3. 制作docker镜像,推到镜像仓库中


                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值