iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
0
DevOps

遠離 DevOops系列 第 24

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

Oops 希望大家都不要遇到

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

Why

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

Deployment

無法使用的API版本:

  • extensions/v1beta1
  • apps/v1beta1
  • apps/v1beta2

請升級API版本至apps/v1 !

sepc相關異動:

  • spec.rollbackTo -> 移除
  • spec.selector -> 改為必填
  • spec.progressDeadlineSeconds 預設改成:600sec
  • spec.revisionHistoryLimit 預設改成:10
  • maxSurgemaxUnavailable 預設改成:25%

StatefulSet

sepc相關異動:

  • spec.selector -> 改為必填
  • spec.updateStrategy.type 現在預設改成RollingUpdate(apps/v1beta1預設為OnDelete)

ReplicaSet

sepc相關異動:

  • spec.selector -> 改為必填

更多詳細說明 - 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方式(給夥伴一點安心),
並在修正後,檢討如何避免此狀況的發生!/images/emoticon/emoticon13.gif


上一篇
[Day 23] Oops!Helm - 2 to 3
下一篇
[Day 25] Oops!Helm - 容器化實作
系列文
遠離 DevOops30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言