整体上,在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/