使用 Persistent Volumes 管理存储

简介: 使用 Persistent Volumes 管理存储

在 Kubernetes 中,Persistent Volumes (PV) 和 Persistent Volume Claims (PVC) 是用来管理存储的抽象概念。PV 是集群中的一块存储,它已经被管理员预先配置好或通过存储类动态创建。PVC 是用户对存储的请求,它指定了存储的大小、访问模式等要求。Kubernetes 会自动匹配合适的 PV 来满足 PVC 的需求。

以下是使用 Persistent Volumes 管理存储的基本步骤:

  1. 创建 Persistent Volume (PV):

    • PV 是集群中的一块存储,可以是本地磁盘、网络存储(如 NFS、iSCSI、云存储等)。管理员需要预先创建 PV 资源。
    • 示例 PV 配置文件 pv.yaml:
      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: my-pv
      spec:
        capacity:
          storage: 5Gi
        accessModes:
          - ReadWriteOnce
        hostPath:
          path: "/mnt/data"
      
    • 应用 PV 配置:
      kubectl apply -f pv.yaml
      
  2. 创建 Persistent Volume Claim (PVC):

    • PVC 是用户对存储的请求。它指定了所需的存储大小、访问模式等。
    • 示例 PVC 配置文件 pvc.yaml:
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: my-pvc
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 2Gi
      
    • 应用 PVC 配置:
      kubectl apply -f pvc.yaml
      
  3. 使用 PVC 在 Pod 中:

    • 在 Pod 配置文件中,你可以引用 PVC 来为容器提供持久化存储。
    • 示例 Pod 配置文件 pod.yaml:
      apiVersion: v1
      kind: Pod
      metadata:
        name: my-pod
      spec:
        containers:
        - name: my-container
          image: nginx
          volumeMounts:
          - mountPath: "/usr/share/nginx/html"
            name: my-pv
        volumes:
        - name: my-pv
          persistentVolumeClaim:
            claimName: my-pvc
      
    • 应用 Pod 配置:
      kubectl apply -f pod.yaml
      
  4. 存储类的使用:

    • 存储类允许管理员定义存储的动态供应策略。当 PVC 与存储类匹配时,存储系统会自动创建相应的 PV。
    • 创建存储类配置文件 storage-class.yaml:
      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:
        name: my-storage-class
      provisioner: kubernetes.io/aws-ebs
      parameters:
        type: gp2
      reclaimPolicy: Retain
      
    • 应用存储类配置:
      kubectl apply -f storage-class.yaml
      
  5. 动态供应:

    • 当 PVC 被创建且没有现成的 PV 与之匹配时,如果 PVC 指定了存储类,且存储类的 provisioner 有效,Kubernetes 将自动创建一个新的 PV。
  6. 管理存储:

    • 使用 kubectl get pv 查看集群中的所有 PV。
    • 使用 kubectl get pvc 查看集群中的所有 PVC。
    • 使用 kubectl describe pv/[PV_NAME] 或 kubectl describe pvc/[PVC_NAME] 获取更多详细信息。
  7. 回收策略:

    • 你可以为 PV 设置回收策略,如 Retain、Recycle 或 Delete。默认策略是 Delete,这意味着当 PVC 被删除时,PV 也会被自动删除。
  8. 备份和迁移数据:

    • 在删除 PVC 或 PV 之前,确保备份重要数据,以防数据丢失。
  9. 监控存储使用情况:

    • 使用 Kubernetes 监控工具(如 Prometheus 和 Grafana)来监控存储使用情况。

通过以上步骤,你可以在 Kubernetes 集群中有效地管理存储资源。记得在生产环境中进行详细的规划和测试,以确保存储解决方案满足应用程序的需求。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
存储 Kubernetes 容器
Kubernetes 存储选项:持久化卷与存储类
【8月更文第29天】随着容器化的普及,越来越多的应用程序需要持久化数据以保持状态信息。Kubernetes 提供了一套完整的解决方案来管理和配置持久化存储,包括持久卷 (Persistent Volume, PV)、持久卷声明 (Persistent Volume Claim, PVC) 和存储类 (StorageClass)。本文将详细介绍这些概念,并通过实际示例来演示如何在 Kubernetes 中配置存储。
1242 3
|
存储 JavaScript 前端开发
JavaScript (二)
JavaScript 对象 可以说 "JavaScript 对象是变量的容器"。 但是,我们通常认为 "JavaScript 对象是键值对的容器"。
187 0
|
19天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
8760 25
|
17天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
3302 14
|
17天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
2185 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
6天前
|
人工智能 JSON Linux
【全网最详细】ComfyUI使用教程:下载+本地部署+配置+工作流搭建一篇搞定(2026最新版)
ComfyUI是一款免费开源的本地AI绘图工具,采用节点式工作流设计,支持文生图、图生图、局部重绘、放大、换脸等多种功能。可离线运行,依赖显卡加速,无需联网。支持自定义流程保存与分享,插件生态丰富,适合进阶用户。(239字)
|
11天前
|
人工智能 Linux 开发者
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
Codex是OpenAI推出的AI编程智能体,可读取本地项目、理解需求并自动修改代码。支持桌面GUI、命令行(CLI)及VS Code/Cursor插件三种形态,覆盖可视化操作、终端高效开发与编辑器无缝集成场景,助开发者用自然语言驱动编码全流程。(239字)
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
|
17天前
|
云安全 人工智能 安全

热门文章

最新文章