kubectl delete namespace命令是否也删除了相关的存储类?

时间:2018-01-23 12:20:00

标签: amazon-web-services kubernetes kubectl google-kubernetes-engine

我是Kubernetes的新手,对此有疑问。

当我们创建一个statefulset时,它会与其PVC相关联,并且PVC将与一个存储类相关联。

所以当我们执行命令“kubectl delete namespace”时,它是否应该删除存储类?

P.S。群集正在AWS上运行。

1 个答案:

答案 0 :(得分:2)

并非所有对象都在命名空间中

大多数Kubernetes资源(例如pod,服务,复制控制器等)都在某些名称空间中。并且低级资源(例如节点和persistentVolumes)不在任何名称空间中。 Source.

存储类不是命名空间对象。 尝试运行$ kubectl get storageclass --all-namespaces,您会注意到甚至没有命名空间的指示:

xxx@xxxxx.xx:~$ kubectl get storageclass --all-namespaces

NAMESPACE   NAME                 PROVISIONER
            slow                 kubernetes.io/gce-pd
            standard (default)   kubernetes.io/gce-pd

因此我从来没有注意过,但我相信如果删除命名空间,Storage类对象就不会发生任何事情。

<强>更新

我创建了一个命名空间类“paolo”以下的StorageClass:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: slow
  namespace: paolo
provisioner: kubernetes.io/gce-pd
parameters:
  type: pd-standard
  zones: us-central1-a, us-central1-b

我没有收到任何错误,我删除了命名空间paolo,并且正如预期的那样,StorageClass仍在那里

我的测试已在Google Cloud Platform上执行。