使用Kubernetes和Docker将Spring Boot与MongoDB作为容器部署

2021/5/13 19:31:26

本文主要是介绍使用Kubernetes和Docker将Spring Boot与MongoDB作为容器部署,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 刘明 译 分布式实验室 

图片



对于本教程,您将拥有一个Docker化Spring-Boot实例程序,该应用程序与MongoDB通信以获取GET/POST API请求,并部署在Kubernetes集群中。
前提条件

图片




  • Minikube

  • Kubectl

  • Docker

  • Maven


Docker是一个具有"社交"方面的Linux容器管理工具包,它允许用户发布容器镜像并且可以使用其他人发布的镜像。运行一个容器化进程的秘诀就是通过Docker镜像,在本篇文章中,我们将会构建一个简单的Spring Boot应用。
您可以在https://github.com/aritnag/spring-boot-mongo-kubernetes-docker中找到该应用。
Docke File文件


image.png

Docker Compose 文件image.png



构建Spring Boot Appimage.png



如果您想使用Maven来进行,请执行以下命令:


./mvn package && java -jar target/spring-boot-mongo-docker-1.0.0.jar



现在可以到http://localhost:8080/customer/ 来看到你存储的用户信息。
Docker化
我们需要一个JDK环境的容器来运行我们的Spring Boot应用。现在有许许多多的自带JDK 8的公共可用镜像,但是为了获取端到端的体验,我们自己来构建一个基于JDK 8 Alpha Linux的最小容器:


docker build -t aritranag20/spring-boot-mongo-docker .



然后使用你在docker.io注册的用户名进行登录:


docker login



执行如下命令去发布你的镜像到Docker镜像中心:


docker push aritranag20/spring-boot-mongo-docker



容器化
如果您想用Docker来运行,执行以下命令:


./docker-compose up



部署到Kubernetes集群
现在我们Docker仓库中已经有一个可用的容器应用,我们可以将它部署到Kubernetes集群中。并且我们也会部署一个MongoDB节点来作为我们后端的数据支撑。
使用如下命令来启动本地Kubernetes集群:


minikube start



你也可以启动集群的DashBoard(可视化界面):


minikube dashborad



接下来,为我们的应用在集群中创建一个部署:


kubectl create -f deployment.yml



我们可以用如下命令查看服务的描述:


kubectl describe service spring-boot-mongo-docker



现在可以启动并获取服务的地址:


minikube service spring-boot-mongo-docker



它将启动浏览器并指向端点。例如,在我的例子中:


 image.png

总结

图片


恭喜!你已经成功创建了一个Spring-Boot-MongoDB的Docker容器化应用,并在Kubernetes中托管了该应用程序。Spring Boot应用集群在容器内部默认使用端口8080运行,我们也在Pod中使用同样的端口,并启动多个实例来对服务进行负载均衡,可用使用 kubectl describe service spring-boot-mongo-docker命令来获取NodePort信息。
可选
最后停止你本地的Kubernetes集群:


minikube stop



原文链接:https://dzone.com/articles/deploying-spring-boot-and-mongodb-as-containers-us-1





这篇关于使用Kubernetes和Docker将Spring Boot与MongoDB作为容器部署的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程