gpt4 book ai didi

kubernetes - 打包基于 kubernetes 的应用程序

转载 作者:行者123 更新时间:2023-12-03 16:25:04 24 4
gpt4 key购买 nike

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

这样做的最佳方法是什么?目前我们有管理这个的脚本,但随着我们进入生产环境,将会有频繁的升级,管理所有依赖项将变得越来越复杂。

我目前正在研究 helm 并想知道我是否在朝着正确的方向探索。任何指导都会对我很有帮助。谢谢。

最佳答案

Helm 似乎是可行的方法,但在我看来,您需要考虑的更多是如何为您的软件提供更新。例如,您是否会提供整个堆栈的单一“版本”,将其转化为基础设施和微服务版本的特定组合,或者您是否会允许您的客户在发布时升级单个微服务。你可以为所有事情准备一个巨大的 Helm 图,或者你可以像我在大多数情况下所做的那样,使用一个“伞状”图表。它包含所有微服务等的子图表。

我通常的设置包含每个服务的子图,然后服务名称被正确命名空间,因此它们可以在 .Release.Name-subchart[-optional] 中被引用。此外,当我需要升级时,我只是用 --reuse-values --set subchart.image.tag=v1.x.x 之类的东西升级了整个图表,它可以对每个服务版本进行精细控制。我还使用 if .Values.enabled 对每个子图资源进行门控,这样我就可以单独启用/禁用每个子图资源。

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

关于kubernetes - 打包基于 kubernetes 的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53928261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com