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

本文详细讲解如何在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

图片

推荐书单

IT BOOK 多得(点击查看5折活动书单)icon-default.png?t=N7T8https://u.jd.com/psx2y1M

《精通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佳实践等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。

《精通Spring Boot 2.0》icon-default.png?t=N7T8https://item.jd.com/12639616.html

图片

精彩回顾

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

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

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

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

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

微信搜索关注《Java学研大本营》

访问【IT今日热榜】,发现每日技术热点

Kubernetes部署 Spring Cloud Alibaba 应用程序通常需要使用以下组件: 1. Kubernetes:用于部署和管理 Docker 容器。 2. Spring Cloud Kubernetes:将 Spring Cloud 应用程序与 Kubernetes 集成的框架。 3. Nacos:用于服务注册和发现,配置管理和动态路由的服务发现和配置中心。 4. Istio:用于流量控制,负载均衡和服务网格。 下面是一个简单的 Spring Cloud Alibaba 应用程序的部署图: ![image.png](https://cdn.nlark.com/yuque/0/2021/png/2440268/1624232902095-4bfae3d5-9f6d-4b74-b6b5-5f3d3d4b45b9.png#clientId=u5e9c3d12-6589-4&from=paste&height=481&id=u5d82f7f1&margin=%5Bobject%20Object%5D&name=image.png&originHeight=481&originWidth=799&originalType=binary&ratio=1&size=26759&status=done&style=none&taskId=u3e6fe18b-8f7e-4c04-94b8-0b5d7a7e5d4) 在这个部署图中,有两个 Spring Cloud Alibaba 应用程序:customer-service 和 account-service。每个应用程序都包含一个或多个容器,其中每个容器都运行 Spring Boot 应用程序。它们都使用自己的 Kubernetes 部署,但是它们都共享同一个 Nacos 服务发现和配置中心。 在 Istio 的帮助下,这两个应用程序可以进行流量控制和负载均衡。 Istio 还提供了一个可视化的控制面板,用于监视和管理 Spring Cloud Alibaba 应用程序的运行状况。 在 Spring Cloud Kubernetes 的帮助下,Spring Cloud Alibaba 应用程序可以与 Kubernetes 集成,以便在 Kubernetes 上进行部署和管理。它还提供了一些实用程序,例如 Kubernetes ConfigMap 和 Kubernetes Secret,用于将 Kubernetes 中的配置数据注入到 Spring Boot 应用程序中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值