使用K8s部署 java 程序初试

 之前学习了spring cloud结合docker ,docker compose来部署项目,但使用docker compose也有很大的局限性:对分布式的支持很有限,需结合swarm等联合使用,所以后边转而学习Kubenates.

    关于Kubenates是什么,如何如何强大,这里就啰嗦了,现在分享一下使用K8s部署spring boot程序的一个示例。

1. spring boot项目配置文件主要配置及说明:

  1.1 application.yml文件:

使用K8s部署 java 程序初试_第1张图片

  项目中用到了mysql以及redis,mysql 和redis 也是使用k8s,由于k8s中的服务会自动根据服务名称生成一些个环境变量,所以这里的MYSQL-SERVICE_SERVICE_HOST,MYSQL-SERVICE_SERVICE_PORT分别对应mysql服务的clusterIp和端口。

 1.2 Dockerfile文件:

  使用K8s部署 java 程序初试_第2张图片 

1.3 项目中使用的maven的docker插件,如图:

   使用K8s部署 java 程序初试_第3张图片

1.4 如果项目没什么问题,通过命令打成jar包:

         mvn clean package -DskipTests=true docker:build

     使用K8s部署 java 程序初试_第4张图片 

 查看生成的image:图中第一就是我们生成的镜像。

    使用K8s部署 java 程序初试_第5张图片

2. k8s ReplicationController 和Service配置:

   2.1 ReplicationController配置:

     使用K8s部署 java 程序初试_第6张图片

   通过命令创建rc: 

        

2.2 Service配置:

   使用K8s部署 java 程序初试_第7张图片

 同样通过命令创建svc

2.3 通过命令 kubectl get pods查看程序对应pods的启动情况:

      使用K8s部署 java 程序初试_第8张图片

   我们可以看到,status状态是Running,我们也可以进入pod查看程序的启动情况(这里项目已经成功启动,就不截图了,日志查看命令:kubectl logs -f {podName})

3. 本项目提供了一个index.html页面供测试使用,我们可以通过Service暴露的nodePort端口访问:

 使用K8s部署 java 程序初试_第9张图片


 通过测试,各项功能正常,部署成功。    

你可能感兴趣的:(java,docker,kubenates,spring,boot)