gpt4 book ai didi

kubernetes - StatefulSet 的 volumeClaimTemplate 中的模板 PersistentVolumeSelector 标签

转载 作者:行者123 更新时间:2023-12-02 11:49:23 25 4
gpt4 key购买 nike

所以有:

  • StatefulSet 以有序的方式控制 Pod 的多个副本。
  • PersistentVolumeClaim 为 Pod 提供音量。
  • statefulset.spec.volumeClaimTemplate[]将前两个绑定(bind)在一起。
  • PersistentVolumeSelector 来控制哪个 PersistentVolume 满足哪个 PersistentVolumeClaim。

  • 假设我有名为 pv0 和 pv1 的持久卷,以及一个有 2 个副本的 statefulset,称为 couchdb。具体来说,statefulset 是:
    apiVersion: apps/v1beta1
    kind: StatefulSet
    metadata:
    name: couchdb
    spec:
    ...
    replicas: 2
    template:
    ...
    spec:
    containers:
    - name: couchdb
    image: klaemo/couchdb:1.6
    volumeMounts:
    - name: db
    mountPath: /usr/local/var/lib/couchdb
    volumes:
    - name: db
    persistentVolumeClaim
    claimName: db
    volumeClaimTemplates:
    - metadata:
    name: db
    spec:
    ...

    此 StatefulSet 生成两个名为 db-couchdb-0 和 db-couchdb-1 的 PersistentVolumeClaim。问题是不能保证 pvc db-couchdb-0 将始终绑定(bind)到 pv0。

    问题是: 您如何确保由 StatefulSet Controller 管理的 PersistentVolumeClaim 的受控绑定(bind)?

    我尝试添加这样的音量选择器:
    selector:
    matchLabels:
    name: couchdb

    statefulset.spec.volumeClaimTemplate[0].spec但是 name 的值没有被模板化。这两个声明最终都会寻找一个标记为 name=couchdb 的 PersistentVolume。

    最佳答案

    如果您使用动态配置,答案是否定的,您不能。因为动态配置的卷总是在发布后被删除。

    如果不是动态配置,则需要手动回收 pv。

    查看reclaiming section k8s 文档。

    关于kubernetes - StatefulSet 的 volumeClaimTemplate 中的模板 PersistentVolumeSelector 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44311915/

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