🎃
HorizontalPodAutoscaler の deprecated となる API Version への対処
migration ガイド
Deprecated API Migration Guide
方法
マイグレーションガイドに特別なことは明記されていないため、基本的な対応は autoscaling/v2beta1
から autoscaling/v2
へ変更するだけとなる
ただし、targetAverageUtilization
が設定されている場合は以下の様に書き換える必要があるので注意が必要となる
修正前
...
- type: Resource
resource:
name: cpu
targetAverageUtilization: 50
修正後
...
- type: Resource
resource:
name: cpu
target:
averageUtilization: 50
type: Utilization
検証
念の為、 autoscaling/v2
に変更した状態で正常動作するか開発環境などを使って検証する
$ kubectl get hpa -o yaml hoge
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
labels:
app: hoge
name: hoge
...
API Version が autoscaling/v2
であることが確認できたら、負荷試験シナリオなどを流して一時的に負荷をかけてPod の状態を監視しながらオートスケールがうまくいっているか確認すると良い
例えば、こんな感じの動きが確認できると良い
$ kubectl get pods -o wide -l app=hoge -w
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
hoge-xxxxx 1/1 Running 0 17h xxx.xxx.xxx.xxx hoge <none> <none>
hoge-yyyyy 0/1 Pending 0 0s <none> <none> <none> <none>
hoge-yyyyy 0/1 Pending 0 0s <none> fuga <none> <none>
hoge-yyyyy 0/1 ContainerCreating 0 0s <none> fuga <none> <none>
hoge-yyyyy 0/1 Running 0 1s yyy.yyy.yyy.yyy fuga <none> <none>
hoge-yyyyy 1/1 Running 0 61s yyy.yyy.yyy.yyy fuga <none> <none>
hoge-yyyyy 1/1 Terminating 0 8m16s yyy.yyy.yyy.yyy fuga <none> <none>
hoge-yyyyy 0/1 Terminating 0 9m37s yyy.yyy.yyy.yyy fuga <none> <none>
hoge-yyyyy 0/1 Terminating 0 9m37s yyy.yyy.yyy.yyy fuga <none> <none>
hoge-yyyyy 0/1 Terminating 0 9m37s yyy.yyy.yyy.yyy fuga <none> <none>
Discussion