pno*_*nak 2 google-compute-engine kubernetes google-kubernetes-engine
我有一个带有一些蛋白质数据库镜像的磁盘映像(HHsearch,BLAST,PDB等)我用一些CI工具构建,并写入GCE磁盘来运行.我想通过多个命名空间来创建这个ReadOnlyMany
PV,但是我没有得到预期的结果.Pods
ReplicationControllers
PersistentVolumeClaims
PersistentVolume配置如下所示;
apiVersion: v1
kind: PersistentVolume
metadata:
name: "databases"
spec:
capacity:
storage: 500Gi
accessModes:
- ReadOnlyMany
persistentVolumeReclaimPolicy: Retain
gcePersistentDisk:
pdName: "databases-us-central1-b-kube"
fsType: "ext4"
Run Code Online (Sandbox Code Playgroud)
加载到kubernetes时的外观如何;
$ kubectl describe pv
Name: databases
Labels: <none>
Status: Bound
Claim: production/databases
Reclaim Policy: Retain
Access Modes: ROX
Capacity: 500Gi
Message:
Source:
Type: GCEPersistentDisk (a Persistent Disk resource in Google Compute Engine)
PDName: databases-us-central1-b-kube
FSType: ext4
Partition: 0
ReadOnly: false
Run Code Online (Sandbox Code Playgroud)
PVC配置都是相同的,看起来像这样;
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: databases
spec:
accessModes:
- ReadOnlyMany
resources:
requests:
storage:
volumeName: databases
Run Code Online (Sandbox Code Playgroud)
PVC
他们看待系统时的s;
$ for ns in {development,staging,production}; do kubectl describe --namespace=$ns pvc; done
Name: databases
Namespace: development
Status: Pending
Volume: databases
Labels: <none>
Capacity: 0
Access Modes:
Name: databases
Namespace: staging
Status: Pending
Volume: databases
Labels: <none>
Capacity: 0
Access Modes:
Name: databases
Namespace: production
Status: Bound
Volume: databases
Labels: <none>
Capacity: 0
Access Modes:
Run Code Online (Sandbox Code Playgroud)
timeout expired waiting for volumes to attach/mount for pod "mypod-anid""[namespace]". list of unattached/unmounted volumes=[databases]
当我这么做时,我会看到很多$ kubectl get events --all-namespaces
当我在生产中缩放RC 1-> 2时(其中一个pod 确实设法绑定PV),第二个Pod无法安装相同的PVC.当我创建第二个ReplicationController
并且PersistentVolumeClaim
在我的生产命名空间中(回想一下,这是成功安装pv的pod所在的地方)由相同的支持PersistentVolume
,第二个Pod/PVC无法绑定.
我错过了什么吗?一个应该如何实际使用的ROX PersistentVolume
与PersistentVolumeClaim
S'
单个PV只能在给定时间绑定到单个PVC,无论它是否为ReadOnlyMany(一旦PV/PVC绑定,PV就不能绑定到任何其他PVC).
一旦绑定了PV/PVC,就可以从多个pod中引用ReadOnlyMany PVC.然而,在Peter的情况下,他不能使用单个PVC对象,因为他试图从多个名称空间引用它(PVC是命名空间而PV对象不是).
要使此方案有效,请创建多个相同的PV对象(引用相同的磁盘),但名称除外.这将允许每个PVC对象(在所有名称空间中)找到要绑定的PV对象.
归档时间: |
|
查看次数: |
961 次 |
最近记录: |