K8s中PV、PVC、StorageClass之间的关系

三者之间的关系:

1.PV和PVC是自动绑定的,PV符合PVC的要求即可

2.PVC向StorageClass申请资源,StorageClass创建PV,然后PVC和PV自动绑定的

 

使用StorageClass而不直接使用PV的好处是:避免手动创建PV,由StorageClass自动创建PV,然后自动绑定PVC。

### Kubernetes StorageClass 配置与使用 #### 定义作用 StorageClass 提供了一种方式来描述存储「类别」,这些类别由集群管理员预先定义好。不同的类别可能映射到不同类型的后端存储或是具有不同的服务级别、备份策略等特性[^2]。 #### 创建 StorageClass 资源对象 为了创建一个新的 `StorageClass`,需要编写 YAML 文件并提交给 API Server。下面展示的是一个名为 `local-storage` 的静态本地磁盘配置例子: ```yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: local-storage provisioner: kubernetes.io/no-provisioner volumeBindingMode: WaitForFirstConsumer ``` 此段代码中的字段解释如下: - **apiVersion**: 表明使用的 API 版本。 - **kind**: 声明这是一个 `StorageClass` 类型的对象。 - **metadata.name**: 给这个 `StorageClass` 取名叫做 `local-storage`。 - **provisioner**: 设置为 `kubernetes.io/no-provisioner` 表示不会自动供应 PersistentVolume (PV),而是依赖于外部机制或手动操作。 - **volumeBindingMode**: 设定为 `WaitForFirstConsumer` 模式意味着 PV PVC 的绑定将在 Pod 实际调度时发生,而不是立即尝试匹配现有的 PV[^1]。 #### 动态供应 vs 手动供应 当设置 `provisioner` 字段指向有效的插件名称时(例如 ceph.com/rbd),则会启用动态供应功能;反之如果指定为 no-op provisioner (`kubernetes.io/no-provisioner`) 则表示不支持自动化供应过程,即采用静态预分配的方式管理持久化卷[PV]。 #### 应用场景举例 假设要部署 Nginx Web服务器,并希望它能够访问特定路径下的 HTML 页面作为首页显示内容,则可以通过自定义的 `StorageClass` 来实现这一点。具体做法是在应用启动之前先准备好所需的文件结构并将它们挂载至容器内部相应位置[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值