首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PersistentVolumeClaim能绑定到多个PersistentVolumes吗?

PersistentVolumeClaim能绑定到多个PersistentVolumes吗?
EN

Stack Overflow用户
提问于 2016-08-28 20:27:38
回答 1查看 8.3K关注 0票数 4

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

代码语言:javascript
运行
复制
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,定义如下:

代码语言:javascript
运行
复制
 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

他们部署得很好

代码语言:javascript
运行
复制
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

索赔定义如下:

代码语言:javascript
运行
复制
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"

我注意到,索赔范围仅限于我创建的一个卷,因此,只能成功地部署我的一个吊舱。我所期望的是,当POD使用这个声明时,它会找到一个可用的卷来绑定,匹配选择器规则。换句话说,我对PersistentVolumeClaims的解释是,一个PersistentVolumes声称在一组与PVC规范相匹配的PersistentVolumes中搜索可用的卷。这就是我的问题:

同一PersistentVolumeClaim能否被同一PersistentVolumes的不同实例所使用以连接到不同的PersistentVolumes?或者,一旦创建了一个并且只有一个卷,并且不能绑定到任何其他卷,索赔就会被绑定?

如果正确的答案是第二个,那么如何使PersistentVolume动态绑定到(选择的形式是一个集合),当部署白化,为每个需要连接的卷创建一个声明,从而避免为每个卷创建特定的POD?

EN

Stack Overflow用户

回答已采纳

发布于 2016-08-29 18:29:25

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

尝试为每个PersistentVolumClaim创建一个单独的Pod

生命周期部分的持久卷doc提供了一个很好的概述。

票数 6
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39195493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档