Kubernetes 是否可以使用PVC';当使用不同的PV';时,具有相同名称的将跨不同的命名空间;他在库伯内特斯?
我有两个不同的名称空间:prod-01和prod-02,我想做的是将prod-01的副本构建到prod-02名称空间中,保持其pvc的相同名称,这样我就不必为每个不同的名称空间维护两组图表 下面是它的样子:Kubernetes 是否可以使用PVC';当使用不同的PV';时,具有相同名称的将跨不同的命名空间;他在库伯内特斯?,kubernetes,namespaces,storage,persistent-volumes,persistent-volume-claims,Kubernetes,Namespaces,Storage,Persistent Volumes,Persistent Volume Claims,我有两个不同的名称空间:prod-01和prod-02,我想做的是将prod-01的副本构建到prod-02名称空间中,保持其pvc的相同名称,这样我就不必为每个不同的名称空间维护两组图表 下面是它的样子: $ kubectl get ns | grep prod prod-01 Active 178d prod-02 Active 8d $ 如下所示,我为每个名称空间提供了2对pv: $ kubectl get pv -o wide | gr
$ kubectl get ns | grep prod
prod-01 Active 178d
prod-02 Active 8d
$
如下所示,我为每个名称空间提供了2对pv:
$ kubectl get pv -o wide | grep prod
prod-01-db-pv 50Gi RWX Retain Bound prod-01/app-db 164d
prod-01-nosql-db-pv 5Gi RWX Retain Bound prod-01/app-nosql-db 149d
prod-02-db-pv 50Gi RWX Retain Available prod-02/app-db 41m
prod-02-nosql-db-pv 5Gi RWX Retain Available prod-02/app-nosql-db 19m
$
以下是用于prod-01的pvc的显示方式:
$ kubectl get pvc --namespace=prod-01
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
app-db Bound prod-01-db-pv 50Gi RWX 164d
app-nosql-db Bound prod-01-nosql-db-pv 5Gi RWX 149d
$
以下是我试图实现的目标:
$ kubectl get pvc --namespace=prod-02
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
app-db Pending prod-02-db-pv 0 2m
app-nosql-db Pending prod-02-nosql-db-pv 0 24m
$
如上所示,prod-02名称空间的pvc永远处于Pending状态
当我将prod-02上的pvc名称更改为任何不同的名称时,它们会按预期粘合
这让我觉得我不能在pvc上使用相同的名称,即使它们在不同的名称空间中并且指向不同的pv。。。然而,在搜索文档时,我找不到关于这个问题的任何证据,我想知道我是否遗漏了什么
简单地说,我可以在不同的名称空间中拥有多个同名的pvc吗(考虑到它们使用的是不同的pv)
更新:kubectl描述pvc的结果
$ kubectl describe pvc app-db --namespace=prod-02
Name: app-db
Namespace: prod-02
StorageClass:
Status: Pending
Volume: prod-02-db-pv
Labels: <none>
Annotations: <none>
Finalizers: []
Capacity: 0
Access Modes:
Events: <none>
$
以下是关于pv的一些细节:
$ kubectl get pv prod-02-db-pv --namespace=prod-02 -o yaml
apiVersion: v1
kind: PersistentVolume
metadata:
creationTimestamp: 2018-09-22T21:15:19Z
name: prod-02-db-pv
resourceVersion: "43020171"
selfLink: /api/v1/persistentvolumes/prod-02-db-pv
uid: 9c07d7a6-beac-11e8-b972-005056bbded7
spec:
accessModes:
- ReadWriteMany
capacity:
storage: 50Gi
claimRef:
apiVersion: v1
kind: PersistentVolumeClaim
name: app-db
namespace: prod-02
nfs:
path: /nfs_server/prod02/db
server: 158.87.52.35
persistentVolumeReclaimPolicy: Retain
status:
phase: Available
$
提前感谢您的帮助 PVC是命名空间资源,但不是PV。也就是说,您可以在不同的名称空间中拥有多个同名的PVC 您配置pv的方式可能存在问题 您能否确保在pv配置中,在
nfs
属性下使用正确的ip地址:
nfs:
path: /nfs_server/prod01/db
server: 158.87.52.35
在OpenShift文档的以下链接中找到问题的原因:
因此,在修复了claimRefs并重新创建了我的pv之后,pvc开始像预期的那样结合起来,即使在其他名称空间上使用了相同的名称:-)你看到了什么
kubectl descripe pvc应用程序db--namespace=prod-02
在问题的底部包含了一个命令结果的更新。是的,IP是正确的。如前所述,当我创建一个具有不同名称的PVC时,它们会按预期绑定,当使用与其他命名空间相同的名称时,它们只会保持挂起状态。只是想知道为什么prod02 pv具有路径/nfs_server/prod01/dbSorry,我屏蔽了原始数据并插入了错误的信息,修复了它,谢谢
nfs:
path: /nfs_server/prod01/db
server: 158.87.52.35