[kubernetes]6-1/2 定时任务迁移kubernetes
6-1 定时任务迁移kubernetes1 把服务做到镜像里搞定基础镜像搞定服务运行的相关文件构建镜像 - Dockerfile2 制作k8s服务 并调度确定服务发现的策略编写k8s配置文件D:\BaiduNetdiskDownload\部署落地+业务迁移 玩转k8s进阶与企业级实践技能\000.课程资料\000.课程资料\mooc-k8s-...
6-1 定时任务迁移kubernetes
1 把服务做到镜像里
搞定基础镜像
搞定服务运行的相关文件
构建镜像 - Dockerfile
2 制作k8s服务 并调度
确定服务发现的策略
编写k8s配置文件
D:\BaiduNetdiskDownload\部署落地+业务迁移 玩转k8s进阶与企业级实践技能\000.课程资料\000.课程资料\mooc-k8s-demo-docker-master\mooc-k8s-demo-docker\cronjob-demo
编译jar包
mvn clean install
启动jar包命令为
java -cp cronjob-demo-1.0-SNAPSHOT.jar com.mooc.demo.cronjob.Main
制作Dockerfile 并制作镜像 上传harbor
FROM openjdk:8-jre-alpine COPY ./cronjob-demo-1.0-SNAPSHOT.jar /cronjob-demo-1.0-SNAPSHOT.jar ENTRYPOINT ["java","-cp","/cronjob-demo-1.0-SNAPSHOT.jar","com.mooc.demo.cronjob.Main"]
在Dockerfile的当前路径下 执行编译命令
docker build -t cronjob:v1 .
启动容器 然后等待响应的时间之后 会自动退出容器
docker run -it cronjob:v1
给容器打tag 准备推送到仓库
docker tag cronjob:v1 harbor.pdabc.com/kubernetes/cronjob:v1
登录 harbor.pdabc.com的pusher账号
推送镜像
docker push harbor.pdabc.com/kubernetes/cronjob:v1
D:\BaiduNetdiskDownload\部署落地+业务迁移 玩转k8s进阶与企业级实践技能\000.课程资料\000.课程资料\mooc-k8s-demo-docker-master\mooc-k8s-demo-docker\configs\cronjob.yaml
apiVersion: batch/v1beta1 kind: CronJob metadata: name: cronjob-demo spec: schedule: "*/1 * * * *" # 保留成功的现场3次 pod并不会删除,最多保留最近的3个 successfulJobsHistoryLimit: 3 # false表示立即调度 suspend: false # 如果一个每分钟运行的任务执行3分钟,后面的job是同时运行还是等待. concurrencyPolicy: Forbid # 和success对应 failedJobsHistoryLimit: 1 jobTemplate: spec: template: metadata: labels: app: cronjob-demo spec: # 重启策略 restartPolicy: Never containers: - name: cronjob-demo image: harbor.pdabc.com/kubernetes/cronjob:v1
# 创建任务
kubectl apply -f cronjob.yaml
# 查看任务 需要等一分钟 触发job
kubectl get cronjob
# 查看到active=1 即有一次schedule之后查看pod 可以看到正在运行的crontab job 执行完成则会看到状态running变为completed 这里要确保所有节点都可以登录连接到harbor.pdabc.com哦,否则会一直卡在creatingcontainer状态
kubectl get pods
可以在对应启动job的node节点看到启动过的容器
docker ps -a |grep cronjob
检查日志
docker logs ${containername}
这里用pc机子创建的集群 在创第3个容器的时候偶尔会卡在creatingcontainer状态.但是物理机创建的不会- -. 错误我就不截图了
更多推荐
所有评论(0)