Google compute engine GKE ReadOnlyMany持久卷,在多个名称空间中具有ReadOnlyMany声明
我有一个带有一些蛋白质数据库镜像的磁盘映像(HHsearch、BLAST、PDB等),我使用一些CI工具构建了这些数据库,并将其写入GCE磁盘以运行。我想通过Google compute engine GKE ReadOnlyMany持久卷,在多个名称空间中具有ReadOnlyMany声明,google-compute-engine,kubernetes,google-kubernetes-engine,Google Compute Engine,Kubernetes,Google Kubernetes Engine,我有一个带有一些蛋白质数据库镜像的磁盘映像(HHsearch、BLAST、PDB等),我使用一些CI工具构建了这些数据库,并将其写入GCE磁盘以运行。我想通过PersistentVolumeClaims在多个命名空间中访问由replicationcontroller创建的Pods中的ReadOnlyManyPV,但我没有得到预期的结果 PersistentVolume配置如下所示 apiVersion: v1 kind: PersistentVolume metadata: name: "d
PersistentVolumeClaims
在多个命名空间中访问由replicationcontroller
创建的Pods
中的ReadOnlyMany
PV,但我没有得到预期的结果
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"
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: databases
spec:
accessModes:
- ReadOnlyMany
resources:
requests:
storage:
volumeName: databases
装载到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
以及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:
<代码>$用于{开发、暂存、生产}中的ns;kubectl描述--namespace=$ns;完成
名称:数据库
名称空间:开发
状态:待定
卷:数据库
标签:
容量:0
访问模式:
名称:数据库
命名空间:暂存
状态:待定
卷:数据库
标签:
容量:0
访问模式:
名称:数据库
名称空间:生产
状态:绑定
卷:数据库
标签:
容量:0
访问模式:
我看到很多等待卷连接/装载pod“mypod anid”“[namespace]”的超时。未连接/未安装卷的列表=[数据库]
当我执行$kubectl获取事件时--所有名称空间
当我在生产中扩展RC 1->2时(其中一个pod成功绑定PV),第二个pod无法安装相同的PVC。当我在我的生产命名空间中创建第二个由同一个PersistentVolume
支持的ReplicationController
和PersistentVolumeClaim
时(回想一下,这就是成功安装pv的pod所在的位置),第二个pod/PVC无法绑定
我错过什么了吗?如何实际使用ROX
PersistentVolume
和PersistentVolumeClaim
s?单个PV在给定时间只能绑定到单个PVC,而不管它是否是现成的(一旦PV/PVC绑定,PV就不能绑定到任何其他PVC)
PV/PVC绑定后,可以从多个POD引用现成的PVC。然而,在Peter的例子中,他不能使用单个PVC对象,因为他试图从多个名称空间引用它(PVC是名称空间,而PV对象不是名称空间)
要使此场景正常工作,请创建多个除名称外完全相同(指同一磁盘)的PV对象。这将允许每个PVC对象(在所有名称空间中)找到要绑定的PV对象