[Day 24] Oops!Helm - Can Not Upgrade Release

Oops 希望大家都不要遇到

Helm 2 -> Helm 3 後 突然無法Upgrade Release

Why

在 helm 2 to helm 3遷移後,我們把k8s直接做升級了。 helm3是支援k8s 1.16版本的,所以在yaml檢查上會把 apps/v1beta2 做警告並不能使用 以下介紹幾個k8s異動類別

Deployment

無法使用的API版本:

請升級API版本至apps/v1 !

sepc相關異動:

StatefulSet

sepc相關異動:

ReplicaSet

sepc相關異動:

更多詳細說明 - https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/

如何避免

在k8s的新舊版本更新前,需要仔細去閱讀版本差異的說明!

在CD過程中遇到此狀況怎麼辦?

1.通知大家

2.給自己一個最快能處理的時間(ex:5分鐘)

3.趕緊看噴錯的原因debug,並回想最近CI/CD的流程or k8s有何異動

4.時間來不及怎麼辦

先改手動透過kubectl edit yaml更新 or 至Web UI介面都可以。

5.暫停該段的CD,並通知大家,先將CD的部分改為手動。

之後就趕緊找出原因吧。

心得

一開始你一定會慌,所以請先保持冷靜,請先通報夥伴們後,給個時間找問題,並提供其他CD方式(給夥伴一點安心), 並在修正後,檢討如何避免此狀況的發生!