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的应用程序_Kubernetes_Packaging_Kubernetes Helm - Fatal编程技术网

打包基于kubernetes的应用程序

打包基于kubernetes的应用程序,kubernetes,packaging,kubernetes-helm,Kubernetes,Packaging,Kubernetes Helm,我们在docker容器中运行多个(20+)服务,这些容器使用Kubernetes进行管理。这些服务包括数据库、流式管道和自定义应用程序。我们希望将此产品作为内部部署解决方案提供,以便可以轻松安装,就像一键式安装一样,隐藏基础架构的所有复杂性 这样做的最佳方式是什么?目前,我们有脚本来管理这一点,但随着我们进入生产阶段,将有频繁的升级,管理所有依赖项将变得越来越复杂 我目前正在研究赫尔姆,不知道我的探索方向是否正确。任何指导都会对我很有帮助。谢谢。Helm似乎是一个不错的选择,但在我看来,您需要考

我们在docker容器中运行多个(20+)服务,这些容器使用Kubernetes进行管理。这些服务包括数据库、流式管道和自定义应用程序。我们希望将此产品作为内部部署解决方案提供,以便可以轻松安装,就像一键式安装一样,隐藏基础架构的所有复杂性

这样做的最佳方式是什么?目前,我们有脚本来管理这一点,但随着我们进入生产阶段,将有频繁的升级,管理所有依赖项将变得越来越复杂


我目前正在研究赫尔姆,不知道我的探索方向是否正确。任何指导都会对我很有帮助。谢谢。

Helm似乎是一个不错的选择,但在我看来,您需要考虑的更多的是如何为您的软件提供更新。例如,您是否会提供整个堆栈的单个“版本”,将其转换为infra设置和微服务版本的特定组合,或者您是否会允许您的客户在发布单个微服务时升级它们。你可以用一个巨大的舵图来表示一切,也可以像我在大多数情况下所做的那样,使用一个“伞形”图。它包含所有微服务等的子图表

我通常的设置为每个服务都包含一个子图,然后服务名称的名称空间正确,因此它们可以在as
.Release.Name subchart[-可选]
中引用。另外,当我需要升级时,我只是用类似于
--重用值--set subchart.image.tag=v1.x.x
的东西来升级整个图表,这样可以对每个服务版本进行精确的控制。我还使用
if.Values.enabled
对每个子哈特资源进行选通,这样我就可以单独启用/禁用每个子哈特资源

丑陋的一面是,如果您确实想发布单个服务升级,您仍然需要运行整个伞形图,为某种错误留下更多的表面,但另一方面,它提供了在一个命令中部署整个解决方案的能力(默认标记为
:latest
,因此clean install将始终安装发布的最新版本,然后使用标记的版本进行更新)