私は3つのノードで構成されたGCEコンテナクラスタを持っています。すべてのノード上で、私はそのようなPODを実行します。PersistentVolumeClaimは複数のPersistentVolumeにバインドできますか?
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: test-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: none
track: stable
spec:
containers:
- name: hello
image: gcr.io/persistent-volumes-test/alpine:v1.2
resources:
limits:
cpu: 0.2
memory: "10Mi"
volumeMounts:
- mountPath: "/persistentDisk"
name: persistent-disk
ports:
- containerPort: 65535
name: anti-affinity
hostPort: 65535
volumes:
- name: persistent-disk
persistentVolumeClaim:
claimName: myclaim
ポートは、すべてのPODが異なるノード上で動作することを保証し、「抗親和性」を定義するのトリック。私はこのように定義された3 PersistentVolume作成しました:
kind: PersistentVolume
apiVersion: v1
metadata:
name: persistent-volume-1
annotations:
volume.beta.kubernetes.io/storage-class: "slow"
labels:
release: "dev"
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
gcePersistentDisk:
pdName: persistent-disk-1
fsType: ext4
をし、彼らはよく主張の定義は以下の通りです
NAME CAPACITY ACCESSMODES STATUS CLAIM REASON AGE
persistent-volume-1 10Gi RWO Released default/myclaim 13h
persistent-volume-2 10Gi RWO Released default/myclaim 5h
persistent-volume-3 10Gi RWO Available 5h
を展開しています
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: myclaim
annotations:
volume.beta.kubernetes.io/storage-class: "slow"
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
selector:
matchLabels:
release: "dev"
私が気づいたことは主張ということです私が作成したボリュームのうちの1つにのみ境界があるので、私のPODSのうちの1つだけが正常に展開されます。私が期待していたのは、この主張がPODによって使用された場合、セレクタルールに一致する1つの利用可能なボリュームがバインドされていることを発見したということでした。 つまり、私がPersistentVolumeClaimsを解釈したのは、PODが、PVCスペックと一致するPersistentVolumesセット内の使用可能なボリュームを検索するという主張を使用することです。それは私の質問です:
異なるPersistentVolumesに接続する同じPODのdifferenteインスタンスで同じPersistentVolumeClaimを使用できますか?または、クレームが作成されて他のボリュームにバインドできない場合、クレームは1つのボリュームにのみバインドされますか?
正解が2番目の場合、PODごとにクレームを作成し、すべてのボリュームに特定のPODを作成しないように、Whitoutを展開したときにPersistentVolume(選択したフォームセット)に動的にバインドさせる私は接続する必要がありますか?
私はそれぞれ異なるPersistentVolumeClaimを使って3種類の 'Pods'を作成しなければなりません.3回同じ' Pod'を複製する 'Deployment'を使うことはできません。 – Paolone
デプロイメントでは、正しいことです。私は[PetSet](http://kubernetes.io/docs/user-guide/petset/)オブジェクトがあなたが探しているストレージ抽象化のタイプを提供していると信じています(しかし、PetSetsはかなり新しく、私はよく知られていません)。 –
「ペット」は私が必要とするものだと思います。「ペットセット」は「クラスタ化されたアプリケーション」とも呼ばれます(http://kubernetes.io/docs/user-guide/petset/#what-is-a-pet-私が構築しようとしているものです。私はそれらを使用する方法を調査します。 – Paolone