上一篇说了cronjob该如何操作能迁移到k8s中,接下来我们就将springboot的web服务迁移到k8s中,看看如何操作吧。
迁移流程
迁移流程和上一篇的一样,就直接把上篇的图拿过来用了。
基础镜像
也是基于java环境的,那么巧了不是,参考上篇中的该小节内容,就不水文了。
服务本身
1、服务下载
从公众号“运维家”后台回复“springboot-web服务包”,即可获取下载地址;下载完毕之后解压到node1节点上。
2、服务认识
[root@node1 ~]# cd ceshi/
[root@node1 ceshi]# ls springboot-web-demo.zip
springboot-web-demo.zip
[root@node1 ceshi]# unzip springboot-web-demo.zip
[root@node1 ceshi]# cd springboot-web-demo/
[root@node1 springboot-web-demo]# ls
pom.xml src
[root@node1 springboot-web-demo]#
[root@node1 springboot-web-demo]# vim src/main/resources/applications.properties
# 这里写了服务名字和端口号
server.name=springboot-web-demo
server.port=8080
[root@node1 springboot-web-demo]# vim src/main/java/com/mooc/demo/controller/DemoController.java
# 这里面写了个接口,叫做“hello”,就是当你传入一个名字的时候给你返回一下
package com.mooc.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by Michael on 2018/9/29.
*/
@RestController
public class DemoController {
@RequestMapping("/hello")
public String sayHello(@RequestParam String name) {
return "Hello "+name+"! I'm springboot-web-demo controller!";
}
}
[root@node1 springboot-web-demo]#
3、程序打包
使用mvn打包,如果不知道如何安装的,请查看上一篇。
[root@node1 springboot-web-demo]# pwd
/root/ceshi/springboot-web-demo
[root@node1 springboot-web-demo]# mvn package
# 当出现如下信息的时候就表示成功了
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 04:46 min
[INFO] Finished at: 2022-03-29T11:04:18+08:00
[INFO] ------------------------------------------------------------------------
[root@node1 springboot-web-demo]# cd target/
[root@node1 target]# ls
classes generated-sources maven-archiver maven-status springboot-web-demo-1.0-SNAPSHOT.jar springboot-web-demo-1.0-SNAPSHOT.jar.original
[root@node1 target]#
测试下打包的程序是否可以运行:
[root@node1 target]# java -jar springboot-web-demo-1.0-SNAPSHOT.jar
浏览器访问一下:
# 192.168.112.130 这个是我node1节点的IP哈,根据你自己的来
http://192.168.112.130:8080/hello?name=yunweijia
出现如下结果,表示程序打包本身无问题:
构建镜像
[root@node1 target]# cd ..
[root@node1 springboot-web-demo]# pwd
/root/ceshi/springboot-web-demo
[root@node1 springboot-web-demo]# vim Dockerfile
FROM registry.cn-beijing.aliyuncs.com/yunweijia0909/openjdk:8-jre
COPY target/springboot-web-demo-1.0-SNAPSHOT.jar /springboot-web-demo.jar
ENTRYPOINT ["java", "-jar", "/springboot-web-demo.jar"]
[root@node1 springboot-web-demo]#
[root@node1 springboot-web-demo]# cd ..
[root@node1 ceshi]# tar zcf springboot-web-demo.tar.gz springboog-web-demo
# 把以上目录打个包,传输到一台有docker环境的服务器上,进行如下操作
[root@jier ~]#
[root@jier ~]# cd ceshi
[root@jier ceshi]# mv /springboot-web-demo.tar.gz .
[root@jier ceshi]# tar xf springboot-web-demo.tar.gz
[root@jier ceshi]# ls
cronjob-demo springboot-web-demo sprintboog-web-demo.tar.gz
[root@jier ceshi]#
[root@jier ceshi]# cd springboot-web-demo/
[root@jier springboot-web-demo]# ls
Dockerfile pom.xml src target
[root@jier springboot-web-demo]# docker build -t springboot-web:v1 .
Sending build context to Docker daemon 16.26MB
Step 1/3 : FROM registry.cn-beijing.aliyuncs.com/yunweijia0909/openjdk:8-jre
---> 71d97cb5644a
Step 2/3 : COPY target/springboot-web-demo-1.0-SNAPSHOT.jar /springboot-web-demo.jar
---> 85c66d00e6bb
Step 3/3 : ENTRYPOINT ["java", "-jar", "/springboot-web-demo.jar"]
---> Running in fd51ce70fa49
Removing intermediate container fd51ce70fa49
---> 8ad32427177e
Successfully built 8ad32427177e
Successfully tagged springboot-web:v1
[root@jier springboot-web-demo]#
# 上传到自己的仓库
[root@jier springboot-web-demo]# docker tag springboot-web:v1 registry.cn-beijing.aliyuncs.com/yunweijia0909/springboot-web:v1
[root@jier springboot-web-demo]# docker push registry.cn-beijing.aliyuncs.com/yunweijia0909/springboot-web:v1
The push refers to repository [registry.cn-beijing.aliyuncs.com/yunweijia0909/springboot-web]
f0863c28a34b: Pushed
6708e662f7d4: Mounted from yunweijia0909/cronjob
2543359fb19b: Mounted from yunweijia0909/cronjob
200bb8035fe4: Mounted from yunweijia0909/cronjob
6e632f416458: Mounted from yunweijia0909/cronjob
e019be289189: Mounted from yunweijia0909/cronjob
c9a63110150b: Mounted from yunweijia0909/cronjob
v1: digest: sha256:1953bfa3859e02f7f8ab10e5b69a0505c738f2d05040be6222e63c2971e8b45d size: 1794
[root@jier springboot-web-demo]#
服务发现策略
剩余内容请转至VX公众号 “运维家” ,回复 “131” 查看。