欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

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

发布时间:2024/9/27 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 使用Kubernetes和Docker将Spring Boot与MongoDB作为容器部署 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

戳蓝字“CSDN云计算”关注我们哦!



对于本教程,您将拥有一个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文件
  • FROM openjdk:8-jdk-alpine

  • ADD target/spring-boot-mongo-docker-1.0.0.jar app.jar

  • ENV JAVA_OPTS=””

  • ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar


  • Docker Compose 文件
  • version: 2.1

  • services:

  • mongo:

  • image: mongo:3.2.4

  • ports:

  • 27017:27017

  • command: smallfiles

  • mongo-init:

  • build: ./mongo-init

  • links:

  • mongo

  • mongo-client:

  • image: mongoclient/mongoclient

  • ports:

  • 3030:3000

  • environment:

  • MONGOCLIENT_DEFAULT_CONNECTION_URL=mongodb://mongo:27017

  • links:

  • mongo

  • # APP ***************************************************************************************

  • spring-boot-mongo-docker:

  • image: aritranag20/spring-boot-mongo-docker

  • ports:

  • 8080:8080

  • links:

  • mongo

  • entrypoint: java -Djava.security.egd=file:/dev/./urandom -jar /app.jar


  • 构建Spring Boot App


    如果您想使用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


  • 它将启动浏览器并指向端点。例如,在我的例子中:
  • curl http://192.168.99.101:30864/user =>

  • [{"id":"58bcd7ad5908010005cce257","firstName":"Arun","lastName":null,"email":null,"address":{"street1":null,"street2":null,"town":null,"postcode":null,"state":null}}]


  • 总结


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


  • 推荐阅读

    • 5G大规模商用来临之前,你必须知道的几个知识点

    • “离开360时,它只给了我一块钱”

    • AI找Bug,一键快速预测

    • 原子互换:一统公链江湖的神来之笔

    • 春晚鬼畜 B 站日排行最高,赵本山:我的时代还没有结束!

    • PDF翻译神器,再也不担心读不懂英文Paper了

    • 新闻联播也可以拿来做数据分析?

    • 高晓松侃5G!2019开年大讲揭示运营商的秘密


    1.微信群:

    添加小编微信:color_ld,备注“进群+姓名+公司职位”即可,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


    2.征稿:

    投稿邮箱:liudan@csdn.net;微信号:color_ld。请备注投稿+姓名+公司职位。

    喜欢就点击“好看”吧! 创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

    总结

    以上是生活随笔为你收集整理的使用Kubernetes和Docker将Spring Boot与MongoDB作为容器部署的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。