繁体   English   中英

如何从集群中正在运行的 Spring Boot 应用程序中动态创建 Kubernetes 资源

[英]How to dynamically create Kubernetes resources from within a running spring boot application in the cluster

我确实有一个 Spring Boot 微服务(SERVICE A)和 Artemis JMS 服务器在 Azure AKS 集群内部运行,React Web 应用程序也从集群内部提供静态页面。 这三个应用程序具有 Kubernetes 部署和服务资源,并使用helm chart 进行部署。

现在,每当用户从 UI 创建条目时,我都需要按需启动另一个微服务。 例如,我确实为客户微服务预定义了 Kubernetes 资源(如舵图),但只需要在用户创建客户时启动微服务,而且每次创建新客户时,我都需要启动另一个客户微服务实例. 我还需要在每次创建客户微服务时将客户名称作为环境变量传递给客户微服务,以便每个客户微服务可以订阅特定主题。

有没有办法实现这一目标? 我也想管理创建的微服务。 比如,当客户被删除时,我需要删除与客户相关的Kubernetes资源。 使用舵图很容易实现这一点吗? 但我想知道如何从正在运行的 Spring boot 应用程序中管理舵图。

这可以使用 Fabric8 库来实现吗?

任何建议都会非常有帮助。

为此,您实际上并不需要 Helm 图表。 通常,您可以像从集群外部一样从集群中运行的应用程序访问Kubernetes API Kubernetes API 是一个 HTTP REST API,您只需要使用正确的身份验证凭据向它发出 HTTP 请求。

由于您使用的是 Java,您可以使用 Kubernetes 的官方Java 客户端库来访问 Kubernetes API 并直接从您的应用程序代码中创建/删除任何资源。

Java 客户端库还帮助您使用正确的身份验证并处理任何其他细节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM