当前位置: 首页 > news >正文

k8s按需创建 PV和创建与使用 PVC

在 Kubernetes 中,PersistentVolume(PV)和 PersistentVolumeClaim(PVC)用于管理存储资源。PV 是集群中的存储资源,而 PVC 是 Pod 请求 PV 的方式。按需创建 PV 通常使用 StorageClass 实现动态存储分配,PVC 通过声明请求所需的存储量与访问模式来绑定相应的 PV。以下是按需创建 PV 和使用 PVC 的具体步骤。

1. 按需创建 PV(使用 StorageClass)

StorageClass 用于定义动态存储分配的策略,允许 Kubernetes 自动创建 PV,而无需手动预先配置。

创建 StorageClass

首先定义一个 StorageClass 资源,指定存储类型和配置参数。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: standard
provisioner: kubernetes.io/aws-ebs  # 选择适合您的云提供商或存储类型
parameters:type: gp2
reclaimPolicy: Delete  # PV 被释放后会删除存储(也可设置为 Retain,保留数据)
volumeBindingMode: WaitForFirstConsumer

2. 创建 PVC 以请求 PV

PersistentVolumeClaim 是 Pod 请求存储资源的声明。配置 PVC 时指定需要的存储大小和访问模式,Kubernetes 会使用指定的 StorageClass 动态创建匹配的 PV 并绑定到该 PVC。

PVC 配置示例

以下示例中,PVC 请求 5Gi 的存储,并使用之前创建的 StorageClassstandard)。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: my-pvc
spec:accessModes:- ReadWriteOnce  # 设置访问模式,可选 ReadOnlyMany、ReadWriteMany 等storageClassName: standard  # 指定使用的 StorageClassresources:requests:storage: 5Gi

当这个 PVC 申请存储时,Kubernetes 会根据 StorageClass 配置动态创建一个 PV 并绑定到 PVC。

3. 在 Pod 中使用 PVC

在 Pod 配置中引用 PVC 以挂载存储卷,从而使应用可以使用持久存储。

apiVersion: v1
kind: Pod
metadata:name: my-pod
spec:containers:- name: my-containerimage: nginxvolumeMounts:- mountPath: "/usr/share/nginx/html"name: my-storagevolumes:- name: my-storagepersistentVolumeClaim:claimName: my-pvc

各字段解析

  • volumeMounts:指定容器内部的挂载路径,此路径对应于卷绑定的位置。
  • volumes:引用 PVC 以将持久卷挂载到容器中。

验证

  1. 创建 StorageClass、PVC 和 Pod:使用 kubectl apply -f 命令应用所有配置文件。
  2. 检查 PVC 状态:运行 kubectl get pvc my-pvc,查看 PVC 是否已绑定(Bound 状态)。
  3. 检查 Pod 挂载:运行 kubectl describe pod my-pod,确认卷已挂载到指定路径。

注意事项

  • reclaimPolicy:定义 PV 释放后的处理方式,Delete 表示删除存储资源,而 Retain 表示保留。
  • volumeBindingModeWaitForFirstConsumer 表示 PV 会在 Pod 请求时创建,适合多节点调度环境。
http://www.lryc.cn/news/477209.html

相关文章:

  • 揭秘云计算 | 2、业务需求推动IT发展
  • 【系统面试篇】进程与线程类(2)(笔记)——进程调度、中断、异常、用户态、核心态
  • 基于MySQL的企业专利数据高效查询与统计实现
  • 热成像手机VS传统热成像仪:AORO A23为何更胜一筹?
  • Spring IoC——依赖注入
  • Linux 中,flock 对文件加锁
  • CentOS下载ISO镜像的方法
  • Node.js 入门指南:从零开始构建全栈应用
  • MYSQL 真实高并发下的死锁
  • Zookeeper 简介 | 特点 | 数据存储
  • 设计模式之结构型模式---装饰器模式
  • Android Pair
  • 华为荣耀曲面屏手机下面空白部分设置颜色的方法
  • 《C#语法一篇通》,有20万字,需8MB字节,宜48小时阅读,没准会继续完善
  • 嵌入式硬件工程师的职业发展规划
  • QT for android 问题总结(QT 5.15.2)
  • PyTorch实战-手写数字识别-MLP模型
  • (附项目源码)Java开发语言,基于Java的高校实验室教学管理系统的设计与开发 50,计算机毕设程序开发+文案(LW+PPT)
  • 【日常问题排查小技巧-连载】
  • elastic search查找字段的方法
  • MATLAB下的四个模型的IMM例程(CV、CT左转、CT右转、CA四个模型),附下载链接
  • 无人机之中继通信技术篇
  • 阳光保险隐忧浮现:业绩与股价双双而下,张维功能否力挽狂澜?
  • 【OJ题解】在字符串中查找第一个不重复字符的索引
  • 处理配对和拆分内容 |【python技能树知识点1~2 习题分析】
  • HBuilderX自定义Vue3页面模版
  • 计算机网络——TCP中的流量控制和拥塞控制
  • BFV/BGV全同态加密方案浅析
  • Elasticsearch 实战应用详解!
  • 最新最全面的JAVA面试题免费下载