Helm 实战
Helm 是 Kubernetes 的包管理器,它能帮助用户更方便地打包、配置、部署和管理 Kubernetes 应用程序及其依赖项,简化复杂应用在 Kubernetes 集群中的操作。对于应用开发者而言,Helm 让应用部署变得更加灵活和简单;不过,要想熟练使用它,还需要熟悉很多细节。本文记录实战中的要点。
Helm Chart 模板 🔗
模板语言 🔗
Helm 主要是由 Go 语言编写的,而 Helm Chart 模板使用的就是 Go 语言标准库中的模板引擎,即 text/template
,所以从模板语言来说,使用的是 Go模板语言。
模板函数 🔗
不过,标准库中的模板引擎不够强大。为了让模板更好用,就要添加更多的函数。Helm 添加了第三方包 sprig
用于扩展模板中函数。最后,Helm 还扩充了模板中的函数。
官方文档《Template Function List》 分类列出了 Helm 模板中的函数。
模板参数 🔗
【待补充】
在本地渲染模板 🔗
在发布到 Kubernetes 之前,可使用 helm template
命令本地渲染模板。
部署应用 🔗
首次安装和升级 🔗
使用 --install
可执行首次安装或者升级。因此不需要分别使用 helm install
和 helm upgrade
进行首次安装和升级。
-i, --install if a release by this name doesn't already exist, run an install
为了确保应用成功运行再返回,那么需要加上 --wait
和 --wait-for-jobs
选项:
--wait if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment, StatefulSet, or ReplicaSet are in a ready state before marking the release as successful. It will wait for as long as --timeout
--wait-for-jobs if set and --wait enabled, will wait until all Jobs have been completed before marking the release as successful. It will wait for as long as --timeout
--atomic
选项可用于在升级失败时回滚:
--atomic if set, upgrade process rolls back changes made in case of failed upgrade. The --wait flag will be set automatically if --atomic is used
卸载和回滚 🔗
如果出于某些原因,比如一直在升级,但其实已经失败,那么需要强制卸载或者回滚。
查看发布状态 🔗
卸载 🔗
回滚 🔗
其他 🔗
Kubernetes 相关 🔗
Job 的 template 是 immutable 的 🔗
未完待续
加载中...