一、前言

spring boot是目前比较流行的快速Java web开发工具,笔者最近使用spring boot开发了部分微服务,并使用k8s进行部署,部署过程中遇到了些问题,现将部署方案分享给大家。开发工具:IDEA,JDK:1.8,构建工具: maven。

二、部署步骤

2.1程序打包

在IDEA开发环境打开工程,Terminal下,执行打包命令:

mvn install  

成功后,会在target目录下生成***.jar文件,验证jar文件可用性:

  • 启动:java -jar ***.jar
  • 使用POSTMAN查看接口是否可用。

2.2 镜像制作

镜像制作是在部署了K8s集群环境的系统中进行。本文是在Ubuntu系统中。

  • 编写Dockerfile
FROM java:8
MAINTAINER tc
ADD  ***.jar  app.jar
EXPOSE 31001
ENTRY
# ENTRYPOINT ["java","-jar", "/***.jar"]

文件内容解释:
1、基镜像为JAVA 版本为8
2、作者名字
3、将项目添加到镜像中,并重命名为app.jar
4、运行镜像文件,监听端口为31001
5、启动时运行java -jar app.jar

  • 构建docker镜像
docker build –t **imagename:v1.0** .   

使用如下命令查看镜像是否构建成功:

docker images  

2.3 将镜像编排到k8s集群中

  • 编写 rc.yaml文件:
apiVersion: v1
kind: ReplicationController
metadata:
        name: svrName
spec:
        replicas: 1
        selector:
                  app: svrName
        template:
                metadata:
                        labels:
                                app: svrName
               spec:
                       containers:
                       - name: svrName
                         image: **imagename:v1.0**
                         ports:
                                 - containerPort:  31001


-编写 svc.yaml文件:

apiVersion: v1
kind: Service
metadata:
        name: svrName
spec:
         type: NodePort
         ports:
         - port: 31001
           nodePort: **31001** 
         selector:
                  app: svrName

  • 创建rc:
kubectl create -f rc.yaml .

查看创建结果:

kubectl  get rc
  • 创建svc:
kubectl create -f svc.yaml .

查看创建结果:

kubectl  get svc
  • 查看pod:
kubectl get pod -o wide

2.4 外部访问

浏览器打开:http://192.168.10.11:31001/test/get

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐