前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Kubernetes和Docker将Spring Boot和MongoDB作为容器部署

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

作者头像
February
修改2018-11-12 16:24:22
1.6K0
修改2018-11-12 16:24:22
举报
文章被收录于专栏:技术翻译技术翻译技术翻译

对于本教程,您将拥有一个Dockerized示例spring-boot应用程序,该应用程序与MongoDB通信以获取GET / POST REST API并部署在Kubernetes集群中。

准备

  • minikube
  • kubectl
  • 搬运工人
  • 行家

Docker是一个具有“社交”方面的Linux容器管理工具包,允许用户发布容器图像并使用其他人发布的容器图像。Docker镜像是运行容器化进程的秘诀,在本指南中,我们将为一个简单的Spring启动应用程序构建一个。

这里找到Github存储库。

Docker文件:

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撰写:

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应用程序

如果要使用Maven运行,请执行:

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

并转到`http:// localhost:8080 / customer /`查看您的持久客户。

Dockerisation

我们需要一个带JDK的容器来运行我们的Spring Boot应用程序。JDK 8已有许多公开上市的图片,但为了获得端到端的体验,我们将使用JDK 8构建一个基于Alpine Linux的最小容器:

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

登录docker.io后,使用您的凭据登录Docker ,

docker login

执行以下命令将映像推送到Docker注册表。

docker push aritranag20/spring-boot-mongo-docker

集装箱化

如果要使用Docker运行,请执行:

./docker-compose up

在Kubernetes上部署

现在我们已经在Docker注册表中提供了应用程序的映像,我们可以将它部署在Kubernetes集群中。我们还将为MongoDB设置一个节点,以便我们的应用程序将其用作后端。

使用以下命令启动本地Kubernetes集群:

minikube start

然后,我们可以为集群启动仪表板:

minikube dashboard

接下来,在群集中创建应用程序的部署。

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}}]

结论

恭喜!您刚刚使用MongoDB为Spring Boot应用程序创建了一个Docker容器,并在Kubernetes中托管了该应用程序!默认情况下,Spring Boot应用程序在容器内的端口8080上运行,我们将其映射到pod上的相同端口,该端口在服务的多个副本之间进行负载平衡,并且可以通过从kubectl describe service spring-boot-mongo-docker 命令获取NodePort来评估 。

可选的

最后停止当地的kubernetes集群:

minikube stop

原文标题《Deploying Spring Boot and MongoDB as Containers Using Kubernetes and Docker》

作者:Aritra Nag

译者:February

不代表云加社区观点,更多详情请查看原文链接

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备
  • Docker文件:
  • Docker撰写:
  • 设置Spring Boot应用程序
  • Dockerisation
  • 集装箱化
  • 在Kubernetes上部署
  • 结论
    • 可选的
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档