javascript
使用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
./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}}]
總結
可選
最后停止你本地的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作为容器部署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 水控机分体与一体选哪一款
- 下一篇: gradle idea java ssm