upgrade - 如何在掌舵升级时找到“来自”图表版本?
问题描述
我正在使用内置对象“Release.isUpgrade”的 helm 来确保 init-container 仅在升级时运行。
我只想在从特定 Chart 版本升级时运行 init-container。
是否有可能在掌舵升级中获得“来自”图表版本?
解决方案
看起来此信息既不是在对象中发布的,也不是通过.Release
钩子作业可用的信息发布的。
你可能想要一个升级前的钩子而不是一个 init 容器。如果您的部署中有多个副本,则 init 容器将在所有副本上运行;即使你只有一个,如果它所在的节点发生故障并被替换,替换将重新运行 init 容器。无论如何配置相应的部署,升级前挂钩只会运行一次。
该钩子将是一个单独的 pod(并且需要编写代码),因此您可以在其中做任何您想做的事情。例如,您可以授予它对 Kubernetes API 的读取权限以获取现有部署的定义,然后查看其标签或容器映像标签以找出当前正在运行的图表/应用程序的版本。(有一些标准标签可以帮助解决这个问题。)您也可以让升级步骤只查找它自己的输出:如果对象 X 应该存在,如果它不存在则创建它,而不关注特定版本。
推荐阅读
- database - delete from table where rownum() = 3
- javascript - Monaco-Editor JavaScript Syntax Highlighting of Keywords
- json - Filter result when use GET
- javascript - Error: function crashed out of request scope Function invocation was interrupted
- javascript - 为什么 onreadystatechange 在这段代码中没有类似语法的方法?
- sqlite - 如何使用 searchDelegate 与 sqlite 颤振
- python-3.x - Python解释器和IDLE之间的区别?
- javascript - 更改其他组件中 onClick 事件的状态
- go - Why do some commands return output but not others for exec.Command()
- python - 低频带通滤波