如何处理已释放的持久卷?

2024-02-25

TL;博士。我不知道删除 PVC 后如何访问数据,以及为什么删除 PVC 后 PV 不会消失。

我正在采取的步骤:

  1. 手动在GCE中创建磁盘:

    gcloud compute disks create --size 5Gi disk-for-rabbitmq --zone europe-west1-b
    
  2. ran:

    kubectl apply -f /tmp/pv-and-pvc.yaml
    

    具有以下配置:

    # /tmp/pv-and-pvc.yaml
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-for-rabbitmq
    spec:
      accessModes:
      - ReadWriteOnce
      capacity:
        storage: 5Gi
      gcePersistentDisk:
        fsType: ext4
        pdName: disk-for-rabbitmq
      persistentVolumeReclaimPolicy: Delete
      storageClassName: standard
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-for-rabbitmq
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 5Gi
      storageClassName: standard
      volumeName: pv-for-rabbitmq
    
  3. 手动删除 PVC(在较高级别上:我在这里模拟灾难性场景,例如意外删除或错误配置helm发布):

    kubectl delete pvc pvc-for-rabbitmq
    

此时我看到以下内容:

$ kubectl get pv
NAME              CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM                      STORAGECLASS   REASON   AGE
pv-for-rabbitmq   5Gi        RWO            Delete           Released   staging/pvc-for-rabbitmq   standard                8m
$

一个附带问题,只是提高我的理解:为什么 PV 仍然存在,尽管它有一个回收政策Delete?这不就是这个吗docs https://kubernetes.io/docs/concepts/storage/persistent-volumes/#delete说对于Delete回收政策?

现在,如果我尝试重新创建 PVC 以重新访问 PV 中的数据:

$ kubectl apply -f /tmp/pv-and-pvc.yaml
persistentvolume "pv-for-rabbitmq" configured
persistentvolumeclaim "pvc-for-rabbitmq" created
$

我仍然得到这个pvs,例如PV 卡在Released state:

$
kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM                             STORAGECLASS   REASON    AGE
pv-for-rabbitmq                            5Gi        RWO            Delete           Released   staging/pvc-for-rabbitmq          standard                 15m
$

...我得到这个pvcs:

$
kubectl get pvc
NAME               STATUS    VOLUME            CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc-for-rabbitmq   Pending   pv-for-rabbitmq   0                         standard       1m
$

看起来我的 PV 被卡住了Released状态,PVC无法访问不在状态的PVAvailable status.

那么,为什么同一个PV和PVC不能再成为好友呢?如何创建 PVC 以重新访问现有 PV 中的数据?


kubectl patch pv pv-for-rabbitmq -p '{"spec":{"claimRef": null}}'

这对我有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理已释放的持久卷? 的相关文章

随机推荐

  • 如何为提交按钮添加事件监听器

    我在这个 html 上遇到了很多麻烦 我正在尝试向提交按钮添加事件侦听器 以便最终可以更改文档以显示表单信息 问题是 当填写表单时 按钮侦听器不执行任何操作 它可以在 jsfiddle 和其他类似的东西中工作 但不能作为独立文件工作 这让我
  • div 中的水印背景图片

    我想从存储的图像创建水印 但水印会影响上层 并缩小所有分区的颜色 div style background url blogthreadlist blogUri no repeat background position center di
  • Hive alter table 更改列名称为重命名的列提供“NULL”

    我曾尝试将表中的现有列重命名为新列 但名称更改后 新列只给我 NULL 值 Parquet 中表的存储格式 例如 user 是 Test 表中字符串数据类型的列 插入了值为 John 的示例记录 Select user from Test
  • 如何编写 VB.Net Lambda 表达式

    我现在正在开发一个 VB net 项目 我是 VB Net LINQ 的新手 想了解 Lambda 的等效项 var new orders Select x gt x items gt 0 在 VB Net 中 有人请推荐一下 lambda
  • MongoDB 中不区分大小写的排序

    如何按给定字段对 MongoDB 集合进行排序 不区分大小写 默认情况下 我先得到 A Z 然后再得到 a z Update 截至目前 mongodb 的索引不区分大小写 Users find collation locale en sor
  • TensorFlow 将函数应用于矩阵变量的每一行

    嗨 我是 Tensorflow 的新手 我想要在 R 中做这样的事情 mat tf Variable matrix 1 4 nrow 2 apply mat 1 cumprod 这在 Tensorflow 中可行吗 无论是在 Python
  • 从node-webkit访问USB设备?

    我正在构建一个需要在所有 3 个主要桌面环境 Windows Mac 和 Linux 上运行的 Node WebKit 应用程序 我需要我的应用程序连接到插入的 USB 设备 但我在精确计算时遇到了一些麻烦如何解决这个问题 是否有一个适用于
  • 在powerpoint中使用vba将两个形状合并为并集

    我正在尝试使用 union 属性将两个相同的形状合并为一个 编译代码时 它显示对象 commandbar 的方法 executemso 失败 我是 vba 新手 所以如果有人帮助我解决这个问题那就太好了 Sub ShapesUnion Di
  • 在Jboss wildfly和docker中使用cli时出现权限错误

    我扩展了一个 docker 镜像 在构建 dockerfile 时 我调用 Wildfly CLI 添加数据源 然后 当我尝试运行 dockerfile 时 出现以下错误 appui dev local appui dev local JB
  • Rails 3.2 中每个模型是否可以有多个夹具文件?

    在 Rails 3 2 中 给定的 ActiveRecord 对象是否可以有多个固定文件 客户要求将测试数据写入固定装置中 但也希望它们易于管理 我想通过引入第二组来稍微分割一下固定装置 原始版本将包括 需要 渲染任何内容 我无法通过谷歌找
  • 重写 git 历史记录,使 crlf 保持一致

    我有一个 git 存储库 其中有 LF 和 CRLF 文件的细微变化 在进行可能的切换之前 我想重写父提交和当前提交具有 不同 LR CRLF 编码的提交 所以我尝试了以下 一行 稍作编辑 我尝试运行todos如果文件的父版本包含 CR g
  • 通过 destruct+move 构造进行的移动分配安全吗?

    这是使用移动构造函数为大多数类定义移动赋值的一种非常简单的方法 class Foo public Foo Foo foo you still have to write this one Foo operator Foo foo if th
  • 显示底部导航栏但未选择任何项目

    这是我的底部导航栏 现在我想显示底部导航栏 但最初没有选择它的任何项目 当我将 selectedIndex 设置为 null 时 我收到错误 有什么办法可以实现这个目标吗 int selectedIndex 0 BottomNavigati
  • “Help”字符串变量替换“configure --help”

    我有一个字符串 我想多次使用它来输出configure help 所以我尝试做这样的事情configure ac AC ARG ENABLE foobar AS HELP STRING enable foobar foobar help s
  • Jest、Typescript、ts-jest:覆盖范围略有不正确

    我正在使用 TypeScript Jest 和ts jestNPM 模块 当我运行测试时 我确实获得了一定的覆盖范围 但 HTML 报告不太正确 此外 某些函数被标记为未经测试 即使它们确实被调用 我的package json设置如下 je
  • 在 OCaml 中的 let 命令(即 let _ = ... in)中使用下划线通配符有副作用吗?

    使用 OCaml 时 我几乎总是使用下划线通配符let exp 特别是当结果exp并不重要 重要的是里面的计算 例如 let print endline abc in let a a 1 in let do some thing in 所以
  • 具有不同身份验证标头的 HttpClient 单实例

    鉴于 net HttpClient 的设计考虑到了重用 并且旨在长寿 http chimera labs oreilly com books 1234000001708 ch14 html and 已报告内存泄漏 https stackov
  • MS SQL Server - 将结果导出到不带“NULL”的文件

    我正在使用 SQL Server Management Studio 将查询结果导出为文本 我想导出结果而不在分隔符之间打印字符 NULL 例如 代替 NULL 我想导出 感谢您的帮助 只需简单地使用 ISNULL someColumn 在
  • 正则表达式匹配跨平台换行符

    我的程序可以接受具有换行符 n r n 或 r 的数据 例如 Unix PC 或 Mac 样式 构造匹配任何编码的正则表达式的最佳方法是什么 或者 我可以在输入上使用 universal newline 支持 但现在我有兴趣看看正则表达式是
  • 如何处理已释放的持久卷?

    TL 博士 我不知道删除 PVC 后如何访问数据 以及为什么删除 PVC 后 PV 不会消失 我正在采取的步骤 手动在GCE中创建磁盘 gcloud compute disks create size 5Gi disk for rabbit