k8s部署-24-springboot的web服务迁移到k8s中

图片

上一篇说了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” 查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

运维家

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

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

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

打赏作者

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

抵扣说明:

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

余额充值