示例:
命名空间:a
PVC: a-pvc
Pod: main-pod-to-work-with
坐骑:
a-pvc; name: a-pvc-mount; path: /pvc/a-files
b-pvc; name: b-pvc-mount; path: /pvc/b-files
c-pvc; name: c-pvc-mount; path: /pvc/c-files
命名空间:B
PVC: b-pvc
命名空间:c
PVC: c-pvc
示例:
命名空间:a
PVC: a-pvc
Pod: main-pod-to-work-with
坐骑:
a-pvc; name: a-pvc-mount; path: /pvc/a-files
b-pvc; name: b-pvc-mount; path: /pvc/b-files
c-pvc; name: c-pvc-mount; path: /pvc/c-files
命名空间:B
PVC: b-pvc
命名空间:c
PVC: c-pvc
1条答案
按热度按时间disho6za1#
[TL;DR]在同一个
namespace
中,一个PVC
可以被两个或多个不同的pod
重用。但是,pod
不可能从两个不同的namespaces
装载基于PVCs
的卷(这将违反namespace
的主要思想-隔离分配给不同用户的资源)。更多信息
根据永久卷文档:
PersistentVolume(PV)是集群中由管理员调配或使用存储类动态调配的一块存储。
PersistentVolumeClaim(PVC)是用户对存储的请求。
在文档的下面有Binding部分,您可以在其中找到信息:
一旦绑定,PersistentVolumeClaim绑定是独占的,无论它们是如何绑定的。PVC到PV绑定是一对一Map,使用ClaimRef,ClaimRef是PersistentVolume和PersistentVolumeClaim之间的双向绑定。
Pod
和PVC
是namespaced
资源。这意味着如果你有pod
在default namespace
中,pvc
也必须在同一个namespace
中。如果您在
default
namespace中创建pod
,则无法在其他namespace
中查看资源。这就是为什么你需要在一些推荐中指定namespace
。如果您不指定它,您的输出将来自default
命名空间。测试
根据Configure a Pod to Use a PersistentVolume for Storage文档,您可以创建
PV
、PVC
和Pods
。很少有pod可以使用相同的
PVC
。但是所有的pods
和PVC
都在同一个namespace
中。作为pod
和pvc
资源,不可能从一个命名空间使用pod
来使用另一个namespace
的资源。总结
Kubernetes
namespaced
资源仅对相同namespace
中的资源可见(如pod
或pvc
)在这种情况下,您必须使用--namespace <namespace>
或-n <namespace>
指定namespace
。还有一些集群范围的资源,如PersistentVolume
,不需要指定名称,因为它们在整个集群中都是可见的。要获取资源列表以检查它是否具有命名空间,您可以使用命令$ kubectl api-resources
。如果这没有回答你的问题,请详细说明。