gpt4 book ai didi

google-compute-engine - GKE ReadOnlyMany 持久卷在多个命名空间中具有 ReadOnlyMany 声明

转载 作者:行者123 更新时间:2023-12-01 19:34:14 25 4
gpt4 key购买 nike

我有一个磁盘镜像,其中包含一些蛋白质数据库(HHsearch、BLAST、PDB 等)的镜像,我使用一些 CI 工具构建它,并将其写入 GCE 磁盘以进行运行。我想通过 PersistentVolumeClaims 在多个命名空间中通过 ReplicationControllers 创建的 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"

加载到 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配置都是一样的,看起来像这样;

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: databases
spec:
accessModes:
- ReadOnlyMany
resources:
requests:
storage:
volumeName: databases

还有 PVC 在系统中的样子;

$ 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:

我看到很多等待卷为 pod“mypod-anid”[namespace]”附加/装载的超时已过期。当我执行 $ kubectl get events --all-namespaces

时,未附加/未安装的卷列表=[数据库]

当我在生产中扩展 RC 1->2(其中一个 pod 确实 设法绑定(bind)了 PV)时,第二个 Pod 无法安装相同的 PVC。当我在我的生产命名空间中创建第二个 ReplicationControllerPersistentVolumeClaim 时(回想一下,这是成功安装 pv 的 pod 所在的位置)由相同的 PersistentVolume< 支持,第二个 Pod/PVC 无法绑定(bind)。

我错过了什么吗?如何实际使用 ROX PersistentVolumePersistentVolumeClaim

最佳答案

单个 PV 在给定时间只能绑定(bind)到单个 PVC,无论它是否为 ReadOnlyMany(一旦 PV/PVC 绑定(bind),PV 就不能绑定(bind)到任何其他 PVC)。

一旦 PV/PVC 被绑定(bind),ReadOnlyMany PVCs 可能被多个 pod 引用。然而,在 Peter 的例子中,他不能使用单个 PVC 对象,因为他试图从多个命名空间引用它(PVC 有命名空间,而 PV 对象没有)。

要使此方案可行,请创建多个除名称外完全相同(指的是同一磁盘)的 PV 对象。这将允许每个 PVC 对象(在所有命名空间中)找到要绑定(bind)的 PV 对象。

关于google-compute-engine - GKE ReadOnlyMany 持久卷在多个命名空间中具有 ReadOnlyMany 声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38444070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com