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上再推送一下

扫描二维码关注公众号,回复: 15813178 查看本文章
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上了。

猜你喜欢

转载自blog.csdn.net/weixin_40612128/article/details/123579371
今日推荐