経緯
- 3 zone にワーカノードが配置された K8s クラスタがある。
- Rook/Ceph クラスタが動いている。
- mon の動作している zone に偏りがあるので、散らしたい。
- 当該 mon の Deployment を削除した。
- 削除した zone に同じ mon が登場する。移動してくれない。
確認をしたのは AKS だが、ブロックストレージが zone を超えられない環境なら同様の状況に陥ると思う。
結論
kubectl delete deploy
の直後に mon が使っている PVC に対し kubectl delete pvc
も行う。
理由(たぶん)
ソースコードは追っていないが、挙動から察する。
rook-ceph-operator は、PVC が残っていると、それを使って復旧を試みるらしい。
PVC がなければ、CephCluster CR にある affinity やらを参考にしてデプロイを行う。たぶん。
注意
mon を一気に全削除するとクラスタが死ぬリスクあり。
1 つ mon を消す毎に operator の reconcile が完了するのを待つ、くらいの用心さで良いかもしれない。