偶尔我需要对我的 StatefulSet 中的所有 Pod 执行滚动替换,以便所有 PV 也从头开始重新创建。这样做的原因是摆脱所有使用旧版本加密密钥的底层硬盘驱动器。此操作不应与常规滚动升级相混淆,我仍然希望卷能够在 Pod 终止后继续存在。到目前为止,我认为最好的例程如下:
- 删除 PV。
- 删除 PVC。
- 删除 Pod。
- 等到所有删除完成。
- 手动重新创建在步骤 2 中删除的 PVC。
- 等待新 Pod 完成来自 StatefulSet 中其他 Pod 的流数据。
- 从第 1 步开始重复下一个 Pod。
我对第 5 步不满意。我希望 StatefulSet 为我重新创建 PVC,但不幸的是它没有。我必须自己做,否则 Pod 创建失败并出现以下错误:
Warning FailedScheduling 3s (x15 over 15m) default-scheduler persistentvolumeclaim "foo-bar-0" not found
有没有更好的方法来做到这一点?