轻松实现在K8S上部署Spring Boot应用(上)
本文详细讲解如何在Kubernetes上部署Java Spring Boot应用程序。
本文我们在Kubernetes上部署一个Java Spring Boot应用程序。
1 项目流程图和步骤
以下是项目部署的流程图:
项目步骤:
1.设置云服务器
2.安装依赖项。
3.配置Mini-Kube。
4.克隆仓库。
5.配置所需的数据库。
6.构建项目。
7.创建Docker镜像。
8.将镜像推送到Dockerhub。
9.运行清单文件。
10.进行端口转发。
11.使用Postman检查JSON数据是否被访问。
12.使用Postman添加数据到数据库。
13.检查数据库中的条目是否可见。
14.检查Mini-Kube仪表板。
项目源代码的GitHub仓库:
https://github.com/rajani103/SpringBootOnK8S_PS.git
2 具体操作步骤
1.创建一个t2.medium服务器:
2.SSH进入服务器:
3.更新软件包和软件包缓存,使用以下命令:
#sudo su
#yum update -y
4.安装Docker,使用以下命令:
#yum install docker
#systemctl enable docker
#systemctl start docker
#systemctl status docker
#docker — version
5.检查Docker版本:
6.启动Docker并检查状态:
注意:在启动Docker之前,为了使用Minikube,需要先安装 Conntrack。
Conntrack:是Connection Tracking的缩写,是Kubernetes网络中的一个关键组件,它需要可靠地跟踪容器和服务之间的通信,并跟踪网络连接和它们的状态,以确保 Kubernetes 网络堆栈能够正常运行。
7.安装Conntrack:
#yum install conntrack -y
8.安装git:
#yum install git
9.检查git版本:
#git — version
10.使用以下命令在Linux平台下载最新版本的Minikube:
#curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
#ls -lrta
minikube已下载。
11.安装minikube,使用以下命令:
#sudo install minikube-linux-amd64 /usr/local/bin/minikube
12.启动minikube:
minikube是一个为用户提供可以间接地访问 Kubernetes(k8s)的平台。
#/usr/local/bin/minikube start --force --driver=docker
为什么需要docker驱动程序?
Kubernetes运行在Docker上,Docker帮助Kubernetes运行。
安装完成:
13.检查minikube版本,使用以下命令:
#/usr/local/bin/minikube version
14.安装kubectl,使用以下命令:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
15.授予kubectl权限:
sudo install -o root -g root -m 0755 kubectl/usr/local/bin/kubectl
16.检查版本:
/usr/local/bin/kubectl version
17.安装git:
克隆仓库,使用以下命令:
yum install git -y
git --version
cd /opt
git clone https://github.com/rajani103/SpringBootOnK8S_PS.git
18.现在我们开始设置数据库。
安装数据库/启动数据库,使用以下命令:
/usr/local/bin/kubectl get pods
/usr/local/bin/kubectl create -f db-deployment.yaml
19.创建持久数据库和其他服务
为什么要切换目录?因为minikube已安装在那里。
cd /usr/local/bin
20.检查pod,使用以下命令:
kubectl get pods
21.检查数据库(进入容器):
/usr/local/bin/kubectl exec -it <POD_NAME>/bin/bash
IN MY CASE
/usr/local/bin/kubectl exec -it mysql-f759455cd-n5gw6 /bin/bash
22.进入数据库。
密码是:root
mysql -u root -p
我们可以从部署文件中看到已创建的数据库。
数据库名称:singamlabs
现在通过exit命令退出pod。
23.安装maven并检查版本,使用以下命令:
yum install maven -y
mvn -v
24.检查是否有可用的镜像,使用以下命令:
没有可用的镜像。
docker images
25.创建Docker镜像:
docker build -t rajjo103/springboot-crud-k8s:1.0 .
26.检查Docker镜像,使用以下命令:
27.登录到Docker hub,使用以下命令:
docker login
28.将镜像推送到Docker hub,使用以下命令:
docker image push rajjo103/springboot-crud-k8s:1.0 .
29.在DockerHub上检查镜像是否已推送:
30.现在执行app.deploy.yaml文件。
/usr/local/bin/kubectl apply -f app-deployment.yaml
31.检查pod:
/usr/local/bin/kubectl get pods
我们有4个pod->3个副本。
32.检查svc是否可用:
/usr/local/bin/kubectl get svc
33.检查minikube ip。
/usr/local/bin/minikube ip
推荐书单
《精通Spring Boot 2.0》
本书详细阐述了与Spring Boot 2.0相关的基本解决方案,主要包括定制auto-configuration、Spring CLI和Actuator、Spring Cloud和配置操作、Spring Cloud Netflix和Service Discovery、构建Spring Boot RESTful微服务、利用Netflix Zuul 创建API网关、利用Feign客户端简化HTTP API、构建事件驱动和异步响应式系统、利用Hystrix和Turbine构建弹性系统、测试Spring Boot应用程序、微服务的容器化、API管理器、云部署(AWS)、生产服务监视和z佳实践等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
购买链接:https://item.jd.com/12639616.html
精彩回顾