背景
以前比如 deployment 的 pod template 修改了 nodeAffinity 后由于 pv 的 nodeAffinity 是 immutable 的,所以 pv 的 nodeAffinity 不会改变,导致 pv 绑定到了错误的 node 上。
针对有时候需要进行节点和数据迁移的比较麻烦
k8s 1.35 后新增了 MutablePVNodeAffinity 特性,允许用户修改 pv 的 nodeAffinity。
示例
可以从
spec:
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- zonea
修改为
spec:
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: topology.kubernetes.io/zone
operator: In
values:
- zoneb