当前位置: 首页 > 网络应用技术

在K8S中部署Spring Boot应用程序,很酷!

时间:2023-03-08 11:54:03 网络应用技术

  整体上,在Kubernetes中的Spring Boot应用程序的部署是一件麻烦的事情,Spring Boot操作员可以为您带来更清爽和简单的体验。

  Spring Boot操作员是根据Kubernetes的自定义资源定义(CRD)扩展API开发开发的。

  在讲话部署之前,我们需要将Springboot应用程序打包到标准的Dockerimage中。

  不会引入春季启动基础知识。推荐本实际教程:https://www.javastack.cn/categories/spring-boot/

  Java项目包装镜有许多Maven/Gradle插件。我的另一篇文章构建了Springboot的Docker Mirror。这是一个新的Google开源插头-In JIB。插头更方便使用。

  注意:JIB包装的镜像将导致Java应用程序的PID = 1。当发布SpringBootoperator的使用时,操作员将设置Kubernetes的ShareProcessNamespace参数以将问题求解为True(v1.10+版本)。

  让我们证明我们通过https://start.spring.io生成标准的Springboot项目操作员设计,然后使用jib插件来包装镜像包装

  执行上述命令后,我们将获得一个标准的Docker映像,该图像将被推到远程仓库。

  完成图像的构造后,我们来将操作员安装到Kubernetes群集。当然,您需要一组集群。您可以参考我以前的文章。几乎一个想法。

  快速安装在这里只是为了快速体验演示

  申请成功后,控制台输出

  等待一会儿,看看是否已成功安装

  成功的输出

  部署OperatorDemo应用程序完成操作员的部署后,我们将部署第一个应用程序。在这里,我们发布了上面写的Opreator-Demo。首先,我们需要编写春季启动应用程序CRD部署yaml,如下

  小心的同学可能已经发现了,你为什么还没有?完成它。然后我们申请

  请参阅控制台输出

  验证表明创建成功,然后让我们看一下我们部署的第一个应用程序。在这里,我们可以在上面的YAML中直接使用名称过滤。

  检查我们的PID是否不等于1的设置。根据下面的结果,我们可以看到参数可以通过设置ShareProcessNamespace在Kubernetes级别解决此PID = 1的问题。

  查看SVC

  让我们参观它。

  让我们尝试将他的副本简化为1个编辑器的emo.yaml,添加一个新属性

  应用

  再次检查吊舱,您会发现我们的豆荚已被缩放到副本中

  清理操作员以删除吊舱。我们只需要执行删除

  再次查看吊舱,它消失了

  部署自己的私人仓库的应用程序需要首先创建秘密(如果您可以创建跳过)来创建Docker-Registry的秘密

  您自己申请的CRD YAML

  完整的Spring Boot应用程序YAML是一个完整的YAML属性结构。大多数属性可以使用默认配置配置。请勿设置属性,请参见默认值中运算符中设置的通用值。稍后请参阅操作员的自定义安装。

  不会引入春季启动基础知识。推荐本实际教程:https://www.javastack.cn/categories/spring-boot/

  优雅关闭的路径是关闭的,因为优雅的关闭已关闭并且不支持GET请求,因此我们需要首先打开桥梁

  然后桥连接一个GET方法

  采用linzi,我们有一个Springboot应用程序用户服务,希望他可以在3个可用区域中将其分配给6个节点:首先,我们将机器在多个可用区域中分配

  现在,我们在每个区域和2个工作量中都有三件作品,总共有6个工作。

  以同样的方式,H区域的标签与H,G,相同

  我们现在准备准备。现在,我们将其设置为允许它达到我们的调度效果,如下所示。

  我们已经快速安装了它,然后我们将解释如何自定义安装以及哪些自定义参数,我们可以个性化环境变量的参数。LET的修改您自己的个性化配置部署。从我提供的YAML的部署中,结尾处找到名称,我们将修改它。

  YAML可以简化为以下内容。

  环境变量表

  .io/2020/04/08/Spring-boot-user-guide/