查看原文
其他

轻松实现在K8S上部署Spring Boot应用(上)

学研妹 Java学研大本营 2024-01-02

本文详细讲解如何在Kubernetes上部署Java Spring Boot应用程序。

长按关注《Java学研大本营》

本文我们在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

精彩回顾

10个不容错过的VSCode插件(下)

10个不容错过的VSCode插件(上)

处理高并发,使用信号量高效管理Java线程

FPGA对比GPU,优劣势与应用场景分析

15个让Java程序运行更快的编程小技巧(下)

长按关注《Java学研大本营》
长按访问【IT今日热榜】,发现每日技术热点
继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存