首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
Kubernetes IP Masquerade Agent 用户指南
Kubernetes云管理控制器
Kubernetes安全地清空一个节点
Kubernetes保护集群
Kubernetes调试DNS问题
Kubernetes改变默认 StorageClass
Kubernetes更改PersistentVolume的回收策略
Kubernetes关键插件Pod的调度保证
Kubernetes静态加密Secret数据
Kubernetes开发云控制器管理器
Kubernetes控制节点上的CPU管理策略
Kubernetes控制节点上的拓扑管理策略
Kubernetes名字空间演练
Kubernetes配置API对象配额
启用/禁用 Kubernetes API
Kubernetes迁移多副本的控制面
Kubernetes升级集群
Kubernetes声明网络策略
Kubernetes使用CoreDNS进行服务发现
Kubernetes使用KMS驱动进行数据加密
使用Kubernetes API访问集群
Kubernetes使用NUMA感知的内存管理器
Kubernetes通过名字空间共享集群
Kubernetes通过配置文件设置Kubelet参数
为Kubernetes运行etcd集群
Kubernetes为节点发布扩展资源
Kubernetes限制存储使用量
Kubernetes验证已签名容器镜像
以非root用户身份运行Kubernetes节点组件
在Kubernetes集群中使用NodeLocal DNSCache
在Kubernetes集群中使用sysctl
Kubernetes在集群中使用级联删除
在运行中的集群上重新配置节点的 kubelet
Kubernetes自定义DNS服务
Kubernetes自动扩缩集群DNS服务
当前位置:
首页>>
技术小册>>
Kubernetes中文教程(五)
小册名称:Kubernetes中文教程(五)
本文展示了如何更改 Kubernetes PersistentVolume 的回收策略。 ## 为什么要更改 PersistentVolume 的回收策略 PersistentVolumes 可以有多种回收策略,包括 "Retain"、"Recycle" 和 "Delete"。 对于动态配置的 PersistentVolumes 来说,默认回收策略为 "Delete"。 这表示当用户删除对应的 PersistentVolumeClaim 时,动态配置的 volume 将被自动删除。 如果 volume 包含重要数据时,这种自动行为可能是不合适的。 那种情况下,更适合使用 "Retain" 策略。 使用 "Retain" 时,如果用户删除 PersistentVolumeClaim,对应的 PersistentVolume 不会被删除。 相反,它将变为 Released 状态,表示所有的数据可以被手动恢复。 ## 更改 PersistentVolume 的回收策略 1. 列出你集群中的 PersistentVolumes ```shell kubectl get pv ``` 输出类似于这样: ```none NAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-b6efd8da-b7b5-11e6-9d58-0ed433a7dd94 4Gi RWO Delete Bound default/claim1 manual 10s pvc-b95650f8-b7b5-11e6-9d58-0ed433a7dd94 4Gi RWO Delete Bound default/claim2 manual 6s pvc-bb3ca71d-b7b5-11e6-9d58-0ed433a7dd94 4Gi RWO Delete Bound default/claim3 manual 3s ``` 这个列表同样包含了绑定到每个卷的 claims 名称,以便更容易的识别动态配置的卷。 2. 选择你的 PersistentVolumes 中的一个并更改它的回收策略: ```shell kubectl patch pv <your-pv-name> -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}' ``` 这里的 `<your-pv-name>` 是你选择的 PersistentVolume 的名字。 在 Windows 系统上,你必须对包含空格的 JSONPath 模板加双引号(而不是像上面 一样为 Bash 环境使用的单引号)。这也意味着你必须使用单引号或者转义的双引号 来处理模板中的字面值。例如: ```cmd kubectl patch pv <your-pv-name> -p "{\"spec\":{\"persistentVolumeReclaimPolicy\":\"Retain\"}}" ``` 3. 验证你选择的 PersistentVolume 拥有正确的策略: ```shell kubectl get pv ``` 输出类似于这样: ```none NAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-b6efd8da-b7b5-11e6-9d58-0ed433a7dd94 4Gi RWO Delete Bound default/claim1 manual 40s pvc-b95650f8-b7b5-11e6-9d58-0ed433a7dd94 4Gi RWO Delete Bound default/claim2 manual 36s pvc-bb3ca71d-b7b5-11e6-9d58-0ed433a7dd94 4Gi RWO Retain Bound default/claim3 manual 33s ``` 在前面的输出中,你可以看到绑定到申领 `default/claim3` 的卷的回收策略为 `Retain`。 当用户删除申领 `default/claim3` 时,它不会被自动删除。 ## * 进一步了解 [PersistentVolumes] * 进一步了解 [PersistentVolumeClaims] ### 参考 * * 注意 PersistentVolume 的 `.spec.persistentVolumeReclaimPolicy` [字段]。 *
上一篇:
Kubernetes改变默认 StorageClass
下一篇:
Kubernetes关键插件Pod的调度保证
该分类下的相关小册推荐:
Kubernets合辑5-Pod控制器
Kubernets合辑6-服务发现
Kubernetes中文教程(二)
Kubernets合辑10-网络
Kubernets合辑11-持续集成
Kubernets合辑14-日志收集
Kubernetes中文教程(六)
Kubernetes中文教程(三)
Kubernets合辑2-部署Ingress
Kubernets合辑15-持续部署
Kubernetes合辑1-安装Kubernetes
Kubernets合辑7-存储