k8s springboot 文件_开发阶段,将SpringBoot应用快速部署到K8S

欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;

背景

对于生产环境,我们一般会用CI&&CD工具完成整个构建和部署,因此本文不适合生产环境;

对于学习和开发环境,我们频繁修改代码,又想快速见到效果,本文就是针对这种场景的;

内容简介

如果您正在开发SpringBoot应用,并且应用部署在K8S环境,可以参考本文将应用快速部署到K8S环境;

文中SpringBoot的版本是2.3.0.RELEASE,从该版本起,SpringBoot官方推荐了一种新的docker镜像构建方案,如果您是之前的版本,请自行修改文中构建镜像的部分;

环境信息

本次实战有两个环境:开发和运行环境,其中开发环境信息如下:

操作系统:Ubuntu 20.04 LTS 桌面版(同样验证过的还有:MacBook pro 13寸,macOS Catalina 10.15.4)

CPU :2.30GHz × 4,内存:32G,硬盘:1T NVMe

JDK:1.8.0_231

MAVEN:3.6.3

SpringBoot:2.3.0.RELEASE

Docker:19.03.10

开发工具:IDEA 2020.1.1 (Ultimate Edition)

运行环境信息如下:

操作系统:CentOS Linux release 7.8.2003

Kubernetes:1.15

另外,请在开发环境安装sshpass;

SpringBoot工程源码

本次实战用到了一个普通的SpringBoot工程,源码可在GitHub下载到,地址和链接信息如下表所示(https://github.com/zq2599/blog_demos):

名称

链接

备注

项目主页

https://github.com/zq2599/blog_demos

该项目在GitHub上的主页

git仓库地址(https)

https://github.com/zq2599/blog_demos.git

该项目源码的仓库地址,https协议

git仓库地址(ssh)

git@github.com:zq2599/blog_demos.git

该项目源码的仓库地址,ssh协议

这个git项目中有多个文件夹,本章的应用在probedemo文件夹下,如下图红框所示:

必要的内容

整个工程是普通SpringBoot工程,除了常见的pom.

Dockerfile文件用来构建docker镜像,如果您的SpringBoot版本为2.3.0.RELEASE或者更高,建议使用SpringBoot官方推荐的镜像构建方式,此Dockerfile可以用来参考;

和probedemo.yaml文件和您的具体项目有关,请自行修改,确保可以用来部署deployment和service;

auto_deploy.sh是可以快速部署的关键,接下来详细说明;

auto_deploy.sh详述

auto_deploy.sh的作用如下:

调用maven命令编辑构建工程;

将构建好的jar文件制作成docker镜像;

将docker镜像导出为tar文件;

将tar文件上传到K8S服务器;

将probedemo.yaml文件发送到K8S服务器;

通过sshpass远程执行命令,将docker镜像导入K8S服务器的本地docker仓库;

通过sshpass远程执行命令,部署deployment和service;

auto_deploy.sh的完整内容如下:

#!/bin/bash# 判断是否安装了sshpassif ! [ -x "$(command -v sshpass)" ]; then echo '请安装sshpass后再使用此脚本!' exit 1fi# 镜像名IMAGE_NAME='bolingcavalry/probedemo'# TAG名TAG_NAME='0.0.1'# 配置了deployment和s.........

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 非常感谢您的问题。Kubernetes是一种可扩展的开源容器编排和管理平台,它可以帮助我们轻松地管理和部署应用程序。Spring Boot是一种轻量级的Java框架,可以帮助我们快速构建可靠的应用程序。在Kubernetes上部署Spring Boot应用程序需要执行以下步骤: 1. 创建一个Docker镜像,并将Spring Boot应用程序打包到Docker镜像中。 2. 创建一个Kubernetes Deployment对象,定义应用程序的容器镜像和其他配置。 3. 创建一个Kubernetes Service对象,以公开应用程序并在群集中暴露其端点。 4. 如果需要,可以创建其他Kubernetes对象,例如ConfigMaps和Secrets,以管理应用程序的配置和敏感信息。 在完成这些步骤后,您的Spring Boot应用程序将在Kubernetes集群中成功部署和运行。希望这个回答能够帮助到您! ### 回答2: Kubernetes(简称为K8s)是一个用于容器编排和管理的开源平台,它可以帮助我们轻松地部署和扩展应用程序。Spring Boot是一个用于构建独立的、生产级的Java应用程序的框架。在K8s部署Spring Boot应用程序需要以下几个步骤: 1. 编写Dockerfile:首先,我们需要在项目根目录下创建一个Dockerfile文件。在Dockerfile中,我们可以指定基础镜像、添加应用程序文件和依赖项,并设置应用程序的启动命令。 2. 构建Docker镜像:使用Dockerfile,我们可以构建一个镜像,该镜像包含了我们的Spring Boot应用程序和所有的依赖项。我们可以使用Docker命令行工具或Docker客户端来构建镜像。 3. 将镜像推送到镜像仓库:构建完成后,可以将镜像推送到镜像仓库,以便在K8s集群中进行访问和部署。常见的镜像仓库包括Docker Hub、私有镜像仓库等。 4. 创建K8s部署文件:接下来,我们需要创建K8s部署文件,该文件定义了应用程序的部署配置,例如容器数量、资源限制等。部署文件可以使用YAML或JSON格式编写。 5. 部署应用程序:使用kubectl命令行工具或K8s API,我们可以将部署文件应用K8s集群中,从而部署我们的Spring Boot应用程序。K8s将自动为我们创建和管理应用程序的Pods、Services和其他相关资源。 6. 监控和扩展:一旦应用程序成功部署,我们可以使用K8s提供的监控和扩展功能来监视和调整应用程序的运行。K8s提供了各种工具和指标,可以帮助我们实现应用程序的自动扩展和高可用。 通过以上步骤,我们可以在K8s集群中轻松部署和管理Spring Boot应用程序。K8s提供了强大的容器编排和管理功能,可以帮助我们构建可靠、高可用的应用程序环境。 ### 回答3: K8s(Kubernetes)是一种开源的容器编排平台,它可以帮助我们更方便地部署、管理和扩展容器化应用。Spring Boot是一种快速开发、便捷部署的Java框架,它提供了一种简化Spring应用开发的方式。 在将Spring Boot应用部署K8s上时,我们可以按照以下步骤进行操作: 1. 创建Docker镜像:首先,我们需要将Spring Boot应用打包成一个Docker镜像。我们可以使用Maven或Gradle构建工具来执行此操作。在创建镜像时,我们需要指定容器运行所需的基础镜像、将Spring Boot应用的JAR文件添加到镜像中,并配置容器的启动命令。 2. 配置K8s资源:接下来,我们需要定义一组K8s资源,用于描述如何部署和运行Spring Boot应用。这些资源包括Deployment、Service和Ingress。Deployment用于定义应用部署规则,Service用于暴露应用的网络访问入口,Ingress则用于将外部请求路由到应用的Service。 3. 应用部署:在配置完成后,我们可以使用Kubectl命令将应用部署K8s集群中。Kubectl是Kubernetes的命令行工具,它可以与K8s API进行交互,管理集群中的资源。通过执行`kubectl create`或`kubectl apply`命令,可以创建或更新我们定义的K8s资源。 4. 监控和扩展:一旦应用部署成功,我们可以使用K8s提供的监控工具来监控应用的性能和运行状态。K8s还提供了自动伸缩的功能,可以根据应用的负载情况自动调整副本数量,以提供更好的性能和可用性。 总结来说,将Spring Boot应用部署K8s上可以帮助我们更好地管理和扩展应用。通过将应用打包成Docker镜像,并使用K8s的资源配置和管理工具,我们可以轻松地将应用部署K8s集群中,并享受K8s提供的自动扩展和监控功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值