k8s pvc 扩容方法

K8s部署与资源管理教程
本系列视频教程涵盖K8s的各种部署方式,包括minikube、kubeadm、kubeasz、rancher及k3s,并深入讲解核心资源如Pod、Service、Deployment的配置与使用。同时,课程提供helm命令详解与实践,以及K8s命令的源码分析,适合从入门到精通的学习需求。

发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967

课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。

第二个视频发布  https://edu.youkuaiyun.com/course/detail/27109

介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。

第三个视频发布:https://edu.youkuaiyun.com/course/detail/27574

详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件

第四个课程发布:https://edu.youkuaiyun.com/course/detail/28488

本课程将详细介绍k8s所有命令,以及命令的go源码分析,学习知其然,知其所以然

————————————————

1storageclass 设置allowVolumeExpansion: true

如:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: rook-block
provisioner: rook.io/block
allowVolumeExpansion: true
parameters:
pool: replicapool
# Specify the namespace of the rook cluster from which to create volumes.
# If not specified, it will use `rook` as the default namespace of the cluster.
# This is also the namespace where the cluster will be
clusterNamespace: rook
# Specify the filesystem type of the volume. If not specified, it will use `ext4`.
# fstype: ext4

 

2编辑pvc增大容量

3扩展rdb

用rdb resize命令

如:

rbd resize --size 9192 pvc-6a06fa0f-c0a5-401b-83bf-d44c1dd20d80

扩展好后查看:

 rbd info --pool replicapool2 pvc-6a06fa0f-c0a5-401b-83bf-d44c1dd20d80   

4进入pod所在的主机

执行:resize2fs

如: resize2fs /dev/rbd1   

5进入pod,查看是否容量扩大

<think>我们正在讨论Kubernetes中PV和PVC扩容方法。根据提供的引用,我们可以总结出以下关键点:1.**StorageClass配置**:首先,StorageClass必须允许卷扩容。这通过在StorageClass中设置`allowVolumeExpansion:true`来实现(如引用[4]所示)。2.**PVC扩容**:在PVC创建后,可以直接编辑PVC定义,增加`spec.resources.requests.storage`字段的值(引用[3]和[4]提到了PVC扩容操作)。3.**底层存储支持**:扩容操作依赖于底层存储插件(如ceph-csi)是否支持卷扩容(引用[3]提到基于ceph-csi的扩容原理)。具体步骤:1.**检查StorageClass**:确保StorageClass已设置`allowVolumeExpansion:true`。2.**编辑PVC**:使用`kubectleditpvc<pvc-name>`命令,增加请求的存储大小。3.**验证扩容**:查看PVC和PV的状态,确认容量已更新。注意:某些存储系统(如本地卷)可能不支持动态扩容(引用[1]提到local-storage的provisioner为`kubernetes.io/no-provisioner`,通常不支持扩容)。相关问题:1.如何检查一个StorageClass是否允许卷扩容?2.PVC扩容后,底层PV的容量是如何自动调整的?3.哪些类型的存储(如NFS、CephRBD)支持PVC动态扩容?4.如果StorageClass不支持扩容,还有其他方法扩容PV吗?</think>### Kubernetes PV/PVC 扩容方法详解 在 Kubernetes 中对 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 进行扩容,需要满足以下核心条件并执行相应步骤: #### 前提条件 1. **存储类(StorageClass)支持扩容** 必须在 StorageClass 中显式启用卷扩容功能: ```yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: standard provisioner: kubernetes.io/<your-provisioner> allowVolumeExpansion: true # 关键配置 ``` 此配置允许该 StorageClass 创建的 PVC 进行扩容[^4]。 2. **底层存储系统支持** 实际存储后端(如 Ceph RBD、AWS EBS、GCP PD 等)必须支持在线扩容功能。例如 Ceph CSI 插件需要特定版本支持 RBD 卷扩容[^3]。 #### 扩容操作步骤 1. **修改 PVC 存储请求** 直接编辑 PVC 定义,增加 `spec.resources.requests.storage` 值: ```bash kubectl edit pvc my-pvc ``` ```yaml spec: resources: requests: storage: 20Gi # 从原值(如10Gi)修改为新值 ``` 2. **触发自动扩容流程** 提交修改后,Kubernetes 将自动执行: - CSI 驱动程序接收扩容请求 - 底层存储系统调整卷容量 - PV 对象自动更新容量值 ```bash kubectl get pvc my-pvc -w # 监控状态变化 ``` 3. **文件系统扩展(可选)** 对于块存储类型,需在 Pod 内扩展文件系统: ```bash # 进入运行中的Pod kubectl exec -it <pod-name> -- bash # 扩展文件系统(以ext4为例) resize2fs /dev/<device-path> ``` #### 验证扩容 ```bash # 检查PVC容量 kubectl get pvc my-pvc -o=jsonpath='{.status.capacity.storage}' # 检查PV容量 kubectl get pv $(kubectl get pvc my-pvc -o=jsonpath='{.spec.volumeName}') -o=jsonpath='{.spec.capacity.storage}' ``` #### 注意事项 1. **动态卷绑定模式** 使用 `volumeBindingMode: WaitForFirstConsumer` 时,扩容可能需重启 Pod[^1]。 2. **存储系统限制** 本地存储(local-volume)等插件通常不支持动态扩容[^3]。 3. **应用感知** 有状态应用(如数据库)需确保支持在线存储扩容,否则需重启 Pod。 4. **回滚限制** PVC 扩容不可逆,无法缩减存储空间。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hxpjava1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值