我有一個由3個節點組成的GCE容器集羣。在每一個節點上運行我這樣一個POD:PersistentVolumeClaim可以綁定到多個PersistentVolumes嗎?
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"
我注意到的是,索賠僅限於我創建的其中一個卷,因此,只有一個PODS可以成功部署。我所期望的是,當POD使用時,可以找到一個可用卷綁定到匹配選擇器規則。 換句話說,我對PersistentVolumeClaims的解釋是,POD使用聲明來搜索一個集合中的可用卷。o符合PVC規格的PersistentVolumes。所以這是我的問題:
可以使用相同的PersistentVolumeClaim由同一個POD的不同實例連接到不同的PersistentVolumes?或者,一旦它被創建並且不能綁定到其他任何卷,它就會綁定到一個且只有一個捲上?
如果正確的答案是第二個,我怎樣才能讓POD動態綁定到一個PersistentVolume(選擇一個集合),當部署時沒有創建每個POD的聲明,從而避免爲每個音量創建一個特定的POD我需要連接到?
因此,我必須創建3個不同的'Pods',每個使用不同的'PersistentVolumeClaim',我不能使用上面重複3次相同'Pod'的'Deployment',對嗎? – Paolone
通過部署,這是正確的。我相信[PetSet](http://kubernetes.io/docs/user-guide/petset/)對象提供了您正在尋找的存儲抽象類型(但PetSets非常新,而且我並不熟悉)。 –
我覺得'Pets'是我需要的:'PetSets'也被稱爲[「羣集應用程序」](http://kubernetes.io/docs/user-guide/petset/#what-is-a-pet-設置)這正是我想要建立的。我將研究如何使用它們。 – Paolone