gpt4 book ai didi

kubernetes - 如何重命名持久卷声明?

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

可以重命名PVC吗? 我似乎无法找到可能的证据。

我正在尝试缓解我偶然发现的“设备没有剩余空间”的问题。基本上,我的计划要求我调整卷的大小,我的服务将其数据保存在该卷上。

不幸的是,我仍在 GKE 上使用 Kubernetes 1.8.6。它没有 PersistentVolumeClaimResize 准入插件已启用:

  • 1.9.1:config-default.sh#L254@1.9.1
  • 1.8.6:config-default.sh#L254@1.8.6

  • 因此,我必须尝试手动保存数据。我做了以下计划:
  • 创建一个新的、更大体积的 PVC,
  • 创建一个带有“受害者”pvc 和一个新的更大 pvc 的临时容器,
  • 复制数据,
  • 丢弃“受害者”PVC,
  • 重命名 新的更大的 pvc 来代替“受害者”。

  • 有问题的 PVC 附加到 StatefulSet,因此旧名称和新名称必须匹配(因为 StatefulSet 期望遵循卷命名约定)。

    但我不明白如何重命名持久卷声明。

    最佳答案

    您的问题的答案是 .在 Kubernetes 中无法更改任何元名称。

    但是,有一种方法可以满足您的要求。

    您想通过旧的 PersistentVolumeClaim 申请更大的新 PersistentVolume。

    可以说,旧 PVC 名为 victim和新 PVC 命名 bigger .您想声明为 bigger 创建的 PV来自 victim PVC。因为您的应用程序已经在使用 victim PVC。

    按照以下步骤进行黑客攻击。

    第一步:删除旧的 PVC victim .

    第 2 步:制作bigger的PV可用的。

    $ kubectl get pvc bigger
    NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
    bigger Bound pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi RWO standard 30s

    编辑PV pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6将 persistentVolumeReclaimPolicy 设置为 Retain .所以删除PVC不会删除PV。

    现在,删除 PVC bigger .
    $ kubectl delete pvc bigger

    $ kubectl get pv
    NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
    pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi RWO Retain Released default/bigger standard 3m

    查看状态,PV 已发布。

    现在,让这个 PV 可以被另一个 PVC 声明,我们的 victim .

    再次编辑 PV 以删除 claimRef
    $ kubectl edit pv pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6

    $ kubectl get pv
    NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
    pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi RWO Retain Available standard 6m

    现在 PV 的状态是可用的。

    第 3 步: claim bigger PV by victim PVC
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
    name: victim
    spec:
    accessModes:
    - ReadWriteOnce
    volumeName: pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6
    resources:
    requests:
    storage: 10Gi

    使用卷名 pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6
    kubectl get pvc,pv
    NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
    pvc/victim Bound pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi RWO standard 9s

    NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
    pv/pvc-8badc3c2-08c5-11e8-b07a-080027b3e1a6 10Gi RWO Retain Bound default/victim standard 9m

    最后:将 persistentVolumeReclaimPolicy 设置为 Delete
    这就是你的PVC victim有更大的PV。

    关于kubernetes - 如何重命名持久卷声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48403542/

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