2

いくつかのタンパク質データベース(HHsearch、BLAST、PDBなど)のミラーを含むディスクイメージがあります。これはCIツールを使用して構築し、GCEディスクに書き込んで実行しますに対して。このReadOnlyMany PVにPodsReplicationControllersという名前で複数のネームスペースでアクセスしたいのですが、予想される結果が得られません。複数の名前空間でReadOnlyManyクレームを持つGKE ReadOnlyMany永続ボリューム

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は、システム内で見たものです。私は生産のRCの1-> 2(1つのポッドはPVをバインドするために管理しなかった場合)、第二ポッドを拡大縮小すると

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

私は$ kubectl get events --all-namespaces

を行うtimeout expired waiting for volumes to attach/mount for pod "mypod-anid""[namespace]". list of unattached/unmounted volumes=[databases]の多くを見ています同じPVCをマウントできません。同じPersistentVolumeにバックアップされている第2のReplicationControllerPersistentVolumeClaimを私のプロダクションネームスペースに作成すると(これはpvが正常にマウントされたポッドであることを思い出してください)、2番目のPod/PVCはバインドできません。

何か不足していますか?実際にはどうすれば ROX PersistentVolumePersistentVolumeClaimを使用するのですか?

答えて

4

ReadOnlyManyかどうか(PV/PVCがバインドされ、PVが他のPVCにバインドできない場合)に関係なく、1つのPVは特定の時間に1つのPVCにのみバインドできます。

PV/PVCがバインドされると、ReadOnlyMany PVCが複数のポッドから参照される可能性があります。しかし、ピーターの場合、複数の名前空間から参照しようとしているため、単一のPVCオブジェクトを使用することはできません(PVオブジェクトは名前空間ではありません)。

このシナリオを機能させるには、名前以外の(同じディスクを参照する)複数のPVオブジェクトを作成します。これにより、各PVCオブジェクト(すべての名前空間内)がバインドするPVオブジェクトを見つけることができます。

関連する問題