自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用 Helm 管理應(yīng)用的一些 Tips

開發(fā) 前端
看似簡(jiǎn)單的工具我在實(shí)際線上使用的時(shí)候也踩過一個(gè)坑,最大的一個(gè)問題就是某次升級(jí) Pulsar 的時(shí)候生成的 yaml 文件是空的,導(dǎo)致整個(gè)集群被刪除了。

背景

Helm 是一個(gè) Kubernetes 的包管理工具,有點(diǎn)類似于 Mac 上的 brew,Python 中的 PIP;可以很方便的幫我們直接在 kubernetes 中安裝某個(gè)應(yīng)用。

比如我們可以直接使用以下命令方便的在 k8s 集群安裝和卸載 MySQL:

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

helm uninstall my-mysql -n mysql

對(duì)于一些復(fù)雜的應(yīng)用使用 Helm 一鍵安裝會(huì)更簡(jiǎn)單,以 Pulsar 舉例:

圖片圖片

它有著多個(gè)組件,比如 bookkeeper、zookeeper、broker、proxy 等,各個(gè)組件還有著依賴關(guān)系。

如果我們手動(dòng)安裝流程會(huì)比較繁瑣,而使用 Helm 時(shí)便非常簡(jiǎn)單:

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

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

當(dāng)然他也只是幫我們生成了部署所需要的 yaml 文件,也沒有太多黑科技。

升級(jí)

看似簡(jiǎn)單的工具我在實(shí)際線上使用的時(shí)候也踩過一個(gè)坑,最大的一個(gè)問題就是某次升級(jí) Pulsar 的時(shí)候生成的 yaml 文件是空的,導(dǎo)致整個(gè)集群被刪除了??。

還好最后使用 helm rollback version 將集群恢復(fù)過來了,我們的持久化數(shù)據(jù)也還在。

而出現(xiàn)這個(gè)問題的原因是我執(zhí)行了下面這個(gè)命令:

helm upgrade pulsar ./charts/pulsar --version 2.9.2 -f charts/pulsar/values-2.10.3.yaml -n pulsar

我們是將 pulsar 的 Helm-Chart 源碼下載到本地,然后修改 value.yaml 的方式執(zhí)行升級(jí)的。

當(dāng)時(shí)執(zhí)行命令的時(shí)候沒有注意,在一個(gè)沒有 values-2.10.3.yaml 文件的目錄下執(zhí)行的,導(dǎo)致生成的 yaml 文件是空的,也就導(dǎo)致 k8s 在 pulsar 這個(gè) namespace 下刪除了所有的資源。

模擬升級(jí)

為了避免今后再次出現(xiàn)類似的問題,需要在升級(jí)前先模擬升級(jí):

helm upgrade pulsar ./charts/pulsar --version 2.9.2 -f charts/pulsar/values-2.10.3.yaml -n pulsar --dry-run --debug > debug.yaml

其中關(guān)鍵的 dry-run 和 debug 參數(shù)可以指定模擬升級(jí)和輸出詳細(xì)的內(nèi)容。

這樣我們就可以在升級(jí)前先查看 debug.yaml 里的內(nèi)容是不是符合我們的預(yù)期。

對(duì)比升級(jí)

但這樣并不能直觀的看出哪些地方是我們修改的,還好社區(qū)已經(jīng)有了相關(guān)的插件,可以幫我們高亮顯示修改的地方。

helm plugin install https://github.com/databus23/helm-diff

我們先安裝好這個(gè) helm 插件。

然后在升級(jí)前先使用該插件:

helm diff upgrade pulsar ./charts/pulsar --version 2.9.2 -f charts/pulsar/values-2.10.3.yaml -n pulsar

圖片圖片

這樣就可以高亮顯示出修改的內(nèi)容。

不用擔(dān)心這個(gè)命令會(huì)直接升級(jí),它會(huì)自動(dòng)加上 --dry-run --debug 參數(shù)。

更多命令可以參考官方文檔:https://github.com/databus23/helm-diff

Helm 功能很強(qiáng),在操作生產(chǎn)環(huán)境的時(shí)候必須得謹(jǐn)慎,都是血淋淋的教訓(xùn)啊。

責(zé)任編輯:武曉燕 來源: crossoverJie
相關(guān)推薦

2018-07-23 15:55:28

協(xié)議自定義viewSwift

2022-04-02 14:43:59

Promethues監(jiān)控

2011-03-15 17:46:43

2016-11-16 21:18:42

android日志

2021-10-12 23:10:58

UnsafeJavaJDK

2009-07-21 09:29:27

iBATIS使用

2018-07-11 14:06:04

數(shù)據(jù)質(zhì)量數(shù)據(jù)治理數(shù)據(jù)清洗

2011-08-01 10:37:29

軟件項(xiàng)目管理

2015-09-16 15:32:37

Android Tra內(nèi)存管理

2010-03-24 18:27:27

無線mesh網(wǎng)絡(luò)應(yīng)用

2013-08-27 13:24:46

App Store應(yīng)用上傳應(yīng)用截圖ASO應(yīng)用商店優(yōu)化

2021-09-12 07:33:23

python管理編程

2010-08-05 13:54:36

NFS協(xié)議

2021-02-06 14:25:29

Java延遲加載代碼

2010-05-25 17:00:04

Java WebWeb容器Web應(yīng)用

2015-08-17 15:53:58

Linux桌面

2011-08-31 18:28:55

MTK

2010-05-10 15:41:38

Unix系統(tǒng)

2023-11-10 08:48:09

Lombok庫Java8

2011-04-14 09:15:21

Java Web應(yīng)用開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)