删除 StatefulSet

    • 本文假设在您的集群上已经运行了由 StatefulSet 创建的应用。

    您可以像删除 Kubernetes 中的其他资源一样删除 StatefulSet:使用 命令,并按文件或者名字指定 StatefulSet。

      删除 StatefulSet 之后,您可能需要单独删除关联的无头服务。

      1. kubectl delete -f <file.yaml> --cascade=false

      通过将 传递给 kubectl delete,在删除 StatefulSet 对象之后,StatefulSet 管理的 pods 会被保留下来。如果 pods 有一个标签 app=myapp,则可以按照如下方式删除它们:

      删除 StatefulSet 管理的 pods 并不会删除关联的卷。这是为了确保您有机会在删除卷之前从卷中复制数据。在pods离开终止状态后删除 PVC 可能会触发删除支持的 Persistent Volumes,具体取决于存储类和回收策略。声明删除后,您永远不应该假设能够访问卷。

      要简单地删除 StatefulSet 中的所有内容,包括关联的 pods,您可能需要运行一系列类似于以下内容的命令:

      1. grace=$(kubectl get pods <stateful-set-pod> --template '{{.spec.terminationGracePeriodSeconds}}')
      2. kubectl delete pvc -l app=myapp

      在上面的例子中,pods 的标签为 app=myapp;适当地替换您自己的标签。

      了解更多有关。