Kubernetes07:【多类型业务迁移】业务系统迁移Kubernetes:定时任务迁移kubernetes

一、项目下载地址

链接:https://pan.baidu.com/s/1LRgh2aTGfUKqRE5Qi-jCug?pwd=qqnn
提取码:qqnn

下载完成导入到idea

在这里插入图片描述
在这里插入图片描述

目的是k8s定期调度这个任务,就像在linux里配置crontab效果是一样的。

二、分析

在这里插入图片描述

三、把服务做到镜像里

1、搞定基础镜像:下载基础镜像

我们来分析下,这是一个java写的项目,我们找一个java的基础镜像。

https://hub.docker.com

搜索java
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们到50上pull这个镜像

docker pull openjdk:8-jre-alpine

在这里插入图片描述
打标签,推到我们自己的仓库

docker tag openjdk:8-jre-alpine hub.mooc.com/kubernetes/openjdk:8-jre-alpine
docker push hub.mooc.com/kubernetes/openjdk:8-jre-alpine 

在这里插入图片描述
这里遇到一个问题,应该是仓库被停掉了,去node-3检查一下:

docker ps | grep harbor

在这里插入图片描述
重启一下

docker-compose up -d

在这里插入图片描述
到node-1上再推送一下

docker push hub.mooc.com/kubernetes/openjdk:8-jre-alpine

在这里插入图片描述

2、搞定服务运行相关文件:打包

(1)我们打个包

在这里插入图片描述
注意,我们不在这里打包,我们把项目克隆到服务器上,在服务器上进行打包!!

2、克隆项目

登录到node-1节点

git clone https://git.imooc.com/coding-335/mooc-k8s-demo.git

在这里插入图片描述

cd mooc-k8s-demo/cronjob-demo/
mvn package 

在这里插入图片描述
项目在target下面
在这里插入图片描述
我们先在主机上直接运行一下,看是否正常

java -cp cronjob-demo-1.0-SNAPSHOT.jar com.mooc.demo.cronjob.Main

在这里插入图片描述

(3)构建镜像:Dockerfile

在这里插入图片描述

vi Dockerfile

内容如下:

FROM hub.mooc.com/kubernetes/openjdk:8-jre-alpine

COPY target/cronjob-demo-1.0-SNAPSHOT.jar /cronjob-demo.jar

ENTRYPOINT ["java", "cp", "/cronjob-demo.jar", "com.mooc.demo.cronjob.Main"]

在这里插入图片描述
使用docker build一下

docker build -t cronjob:v1 .

在这里插入图片描述
我们来测试一下这个镜像能不能跑起来

docker run -it cronjob:v1

这里不用再加其他参数,因为我们在Dockerfile文件里已经写好了。

在这里插入图片描述
然后我们把镜像打一个tag,推送到镜像仓库

docker tag cronjob:v1 hub.mooc.com/kubernetes/cronjob:v1
docker push cronjob:v1 hub.mooc.com/kubernetes/cronjob:v1

在这里插入图片描述

四、制作k8s服务,并调度

在这里插入图片描述
我们这里没有服务发现的策略,没有网络和端口。

下面我们来编写k8s的配置

crontab.yaml文件内容如下:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: cronjob-demo
spec:
  schedule: "*/1 * * * *"
  successfulJobsHistoryLimit: 3
  suspend: false
  concurrencyPolicy: Forbid
  failedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        metadata:
          labels:
            app: cronjob-demo
        spec:
          restartPolicy: Never
          containers:
          - name: cronjob-demo
            image: hub.mooc.com/kubernetes/cronjob:v1

在这里插入图片描述
下面,我们来启动一下

kubect	apply -f cronjob.yaml

在这里插入图片描述
查看一下:

kubectl get crontjob

在这里插入图片描述
等一会。。

我们先去看下pod

kubectl get pods

在这里插入图片描述
当前只有一个是之前我们做的tomcat的pod。

好了,我们现在再去看下

kubectl get crontjob

在这里插入图片描述
再去看下pod

kubectl get pods

在这里插入图片描述

kubectl get pods -o wide

在这里插入图片描述
在121上,我们去121上看下

docker ps | grep crontjob
docker ps -a | grep cronjob

在这里插入图片描述
查看下日志

docker logs 882cf4dee95d

在这里插入图片描述

到此,这个简单的项目就调度在k8s上了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做一个有趣的人Zz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值