使用 Helm 管理應用的一些 Tips

2023-10-09 21:00:33

背景

Helm 是一個 Kubernetes 的包管理工具,有點類似於 Mac 上的 brewPython 中的 PIP;可以很方便的幫我們直接在 kubernetes 中安裝某個應用。

比如我們可以直接使用以下命令方便的在 k8s 叢集安裝和解除安裝 MySQL

helm install my-sql oci://registry-1.docker.io/bitnamicharts/mysql -n mysql

helm uninstall my-mysql -n mysql

對於一些複雜的應用使用 Helm 一鍵安裝會更簡單,以 Pulsar 舉例:

它有著多個元件,比如 bookkeeper、zookeeper、broker、proxy 等,各個元件還有著依賴關係。

如果我們手動安裝流程會比較繁瑣,而使用 Helm 時便非常簡單:

helm repo add apache https://pulsar.apache.org/charts

helm install my-pulsar apache/pulsar --version 3.0.0 -n pulsar

當然他也只是幫我們生成了部署所需要的 yaml 檔案,也沒有太多黑科技。

升級

看似簡單的工具我在實際線上使用的時候也踩過一個坑,最大的一個問題就是某次升級 Pulsar 的時候生成的 yaml 檔案是空的,導致整個叢集被刪除了