gpt4 book ai didi

kubernetes - PersistentVolumeClaim 可以绑定(bind)到多个 PersistentVolume 吗?

转载 作者:行者123 更新时间:2023-12-03 17:03:06 26 4
gpt4 key购买 nike

我有一个由 3 个节点组成的 GCE 容器集群。在每个节点上,我都运行一个像这样的 POD:

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

claim 定义如下:
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 使用该声明时,会找到一个可用的卷来绑定(bind),匹配选择器规则。
换句话说,我对 PersistentVolumeClaims 的解释是,POD 使用声明来搜索一组匹配 PVC 规范的 PersistentVolume 中的可用卷。所以这就是我的问题:

同一 POD 的不同实例可以使用相同的 PersistentVolumeClaim 连接到不同的 PersistentVolume 吗?或者声明一旦创建就绑定(bind)到一个且仅一个卷,并且不能绑定(bind)到任何其他卷?

如果正确的答案是第二个,如何在部署时将 POD 动态绑定(bind)到 PersistentVolume(从一组中选择)而不为每个 POD 创建一个声明,从而避免为我需要连接的每个卷创建一个特定的 POD到?

最佳答案

一个 PersistentVolumeClaim保留满足其请求的特定存储实例。使用相同的 PersistentVolumeClaim在多个 Pods将尝试使用相同的界限 PersistentVolume在每个 Pods ,这在 gcePersistentDisk 的情况下是不可能的.

尝试创建一个单独的 PersistentVolumClaim对于每个 Pod .

Lifecycle Persistent Volumes doc 的部分提供了一个很好的概述。

关于kubernetes - PersistentVolumeClaim 可以绑定(bind)到多个 PersistentVolume 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39195493/

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