💨
PodDisruptionBudget の deprecated となる API Version への対処
migration ガイド
Deprecated API Migration Guide
方法
マイグレーションガイドに特別なことは明記されていないため、対応は policy/v1beta1
から policy/v1
へ変更するだけとなる
検証
念の為、事前に以下の対応を行い policy/v1
に変更した状態で正常動作するか開発環境などを使って検証する
- レプリカ数を2に変更
-
apiVersion
をpolicy/v1
に変更 -
maxUnavailable
を1に設定
$ kubectl get pdb -o yaml hoge
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
labels:
app: hoge
name: hoge
...
spec:
maxUnavailable: 1
下記コマンドで取得したノードに対して drain を行い、少なくとも1つの Pod は生きているように制御されるかを確認していく
$ kubectl get pods -o wide -l app=hoge
$ kubectl drain --delete-emptydir-data --ignore-daemonsets {ノード}
drain を実施後に下記コマンドで監視すると、一斉に Pod が削除されることはなく必ず1つの Pod は生きていることがわかる
$ kubectl get rs -w -l app=hoge
NAME DESIRED CURRENT READY AGE
...
hoge-xxxxxxxxxx 2 2 2 25m
hoge-xxxxxxxxxx 2 1 1 25m
hoge-xxxxxxxxxx 2 2 1 25m
hoge-xxxxxxxxxx 2 2 2 30m
Discussion