我是Kubernetes的新手,对此有疑问。
当我们创建一个statefulset时,它会与其PVC相关联,并且PVC将与一个存储类相关联。
所以当我们执行命令“kubectl delete namespace”时,它是否应该删除存储类?
P.S。群集正在AWS上运行。
答案 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上执行。