Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在kubernetes中使用Jenkins和部署构建特定于租户的docker映像_Jenkins_Kubernetes - Fatal编程技术网

在kubernetes中使用Jenkins和部署构建特定于租户的docker映像

在kubernetes中使用Jenkins和部署构建特定于租户的docker映像,jenkins,kubernetes,Jenkins,Kubernetes,我的应用程序结构 我正在使用kubernetes和Jenkins在面向服务的体系结构中开发一个基于租户的应用程序。在我的应用程序中,它包含15-20个使用SpringBoot开发的微服务。每个微服务都需要为不同的客户分别部署。如果我有5个客户,我需要为这5个客户部署15个微服务。这是关于我的租赁模型的描述 部署规划 对于这个应用程序,我计划使用kubernetes和Jenkins来部署和实现CI/CD管道 我的发现 我的应用程序的本质是通过使用SpringCloudConfigServerAct

我的应用程序结构

我正在使用kubernetes和Jenkins在面向服务的体系结构中开发一个基于租户的应用程序。在我的应用程序中,它包含15-20个使用SpringBoot开发的微服务。每个微服务都需要为不同的客户分别部署。如果我有5个客户,我需要为这5个客户部署15个微服务。这是关于我的租赁模型的描述

部署规划

对于这个应用程序,我计划使用kubernetes和Jenkins来部署和实现CI/CD管道

我的发现

我的应用程序的本质是通过使用SpringCloudConfigServerActiveProfile功能从同一代码为不同的客户构建映像。意味着在我的docker文件中,我通过定义哪个是活动配置文件来启动特定的图像。如下图所示

java -jar -Dspring.profiles.active=<Profile_Name> dbdata-0.0.1-SNAPSHOT.jar
这里我在配置服务器中配置配置文件。所以在这里,我使用相同的代码来创建属于每个客户的多个图像

混乱

如果我遵循这种风格,我如何使用Jenkins从同一代码库创建和启动不同的映像?可以使用同一代码库中的Jenkins启动多个映像吗


总而言之,我如何理解按照上述应用程序结构创建和部署多个映像?

由于您有多个微服务,最好使用+之类的工具来简化这些服务的管理。在这种情况下,每个租户将有单独的发行版和Kubernetes命名空间。如果每个租户需要不同的docker图像,则可以使用不同的docker图像标记

至于Jenkins部分,我看不出任何问题,您可以从1个repo构建任意数量的docker映像:

创建作业以生成和上载docker图像 创建作业以生成和上载舵图 创建作业以在Kubernetes中部署/更新版本
如果docker映像仅在命令行中不同,则不需要构建不同的docker映像。此命令行或env变量可以在Kubernetes资源描述中重写。

谢谢,先生。我理解你的观点。事实上,我需要从一个回购协议中构建多个图像。需要通过指定活动配置文件来启动应用程序。我正在使用一个具有不同配置文件/配置的spring云配置服务器。并且需要通过指定活动配置文件来启动应用程序。像这样,我需要创建多个图像。因此,每次-Dspring.profiles.active=参数都会根据配置文件名称进行更改。这里,每个配置服务器配置文件/配置代表每个客户端。因此,每个客户端映像都需要部署在单独的节点中。我希望您理解我的困惑。我需要启动SpringBoot应用程序,并根据SpringCloudConfigServer的活动配置文件构建映像。我对Jenkins的图像构建/自动化脚本来管理这个场景感到困惑。也许我不完全理解你的问题。詹金斯可以运行任何shell脚本。在此脚本中,特定于您的设置需要具有可能配置的阵列。然后,您可以在bash循环中构建应用程序和docker映像,并对源代码和Dockerfile进行必要的更改。在bash的Dockerfile中使用它的最简单的模板语言是envsubst。您能参考我的问题吗-