Skip to content

[BUG] add new a VolumeClaimTemplate to StatefulSet failed #2343

@imsunv

Description

@imsunv

What happened:
当向现有的 Advanced StatefulSet 添加新的 VolumeClaimTemplate
时,StatefulSet 控制器在 processReplica
阶段会检测到 Pod 的存储配置与期望不符(storageMatches返回 false)。随后,控制器会尝试调用
UpdateStatefulPod 来原地更新现有的 Pod 及其 PVC。

由于 Kubernetes API Server 不允许对运行中 Pod 的 spec.volumes 字段进行原地修改(该字段在生产环境中除镜像外通常是不可变的)

What you expected to happen:
通过重建更新的方式对Pod进行更新

How to reproduce it (as minimally and precisely as possible):

  1. 创建一个具有 3 个副本及 1 个 volumeClaimTemplate 的 Advanced StatefulSet。
  2. 等待所有 Pod 正常运行并 Ready。
  3. 修改 StatefulSet 定义,在 spec.volumeClaimTemplates 列表中增加一个新的 PVC 模板。
  4. 查看控制器日志或 StatefulSet 的 Status/Events。你会发现控制器会持续报错 Forbidden,且 Pod 始终没有被触发重建。

Anything else we need to know?:

Environment:

  • Kruise version: v1.4 and master branch
  • Kubernetes version (use kubectl version):
  • Install details (e.g. helm install args):
  • Others:

Metadata

Metadata

Assignees

Labels

kind/bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions