AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
使用`--cascade=false`参数就表示非级联删除: ~~~bash $ kubectl delete statefulset web --cascade=false statefulset.apps "web" deleted # 由 StatefulSet 创建的 Pod 并没有被删除,依然是运行状态 $ kubectl get pods -l app=nginx NAME READY STATUS RESTARTS AGE web-0 1/1 Running 0 50m web-1 1/1 Running 0 51m ~~~ 我们尝试手动删除 web-0 Pod: ~~~bash $ kubectl delete pod web-0 pod "web-0" deleted # 由于删除了 web StatefulSet,所以 web-0 Pod 没有被继续创建了 $ kubectl get pods -l app=nginx NAME READY STATUS RESTARTS AGE web-1 1/1 Running 0 53m ~~~ 现在重新创建 web StatefulSet: ~~~bash # 由于没有删除 nginx 服务,所以重新创建的时候有报错提醒,可以忽略 $ kubectl create -f web.yaml statefulset.apps/web created Error from server (AlreadyExists): error when creating "web.yaml": services "nginx" already exists ~~~ 查看当前环境中运行的 Pod: ~~~bash # 当前环境运行的都是新创建的 Pod,原来单独剩下的 web-1 Pod 被删除了 $ kubectl get pods -l app=nginx NAME READY STATUS RESTARTS AGE web-0 1/1 Running 0 3m7s web-1 1/1 Running 0 2m54s ~~~ 更加详细的过程如下: ~~~bash $ kubectl get pods -w -l app=nginx NAME READY STATUS RESTARTS AGE # 删除 web-0 web-0 1/1 Terminating 0 52m web-0 0/1 Terminating 0 52m web-0 0/1 Terminating 0 52m web-0 0/1 Terminating 0 52m # web-1 处于运行状态 web-1 1/1 Running 0 62m # 新创建 web StatefulSet 时,按顺序首先创建 web-0 Pod,创建成功后,由于检测到环境中有单独留下的 web-1 Pod,于是老的 web-1 Pod 被删除,然后重新创建新的 web-1 Pod web-0 0/1 Pending 0 0s web-0 0/1 Pending 0 0s web-0 0/1 ContainerCreating 0 0s web-0 1/1 Running 0 2s web-1 1/1 Terminating 0 62m web-1 0/1 Terminating 0 62m web-1 0/1 Terminating 0 62m web-1 0/1 Terminating 0 62m web-1 0/1 Pending 0 0s web-1 0/1 Pending 0 0s web-1 0/1 ContainerCreating 0 0s web-1 1/1 Running 0 1s ~~~ 需要注意的是:删除 StatefulSet 时,并不会删除与 Pod 相关联的 PersistentVolumes,当重新构建 StatefulSet 后,新创建的 Pod 会挂载原来的 PersistentVolumes。