使用 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 设置回收策略,如 RetainRecycleDelete。默认策略是 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
相关文章
|
消息中间件 弹性计算 运维
对比阿里云的SofaMQ与RocketMQ
对比阿里云的SofaMQ与RocketMQ
2524 2
|
搜索推荐 API
Email API Service平台有哪些?3大API接口平台对比
本文对比了三个Email API Service:AokSend、Mailgun和Postmark。AokSend提供高效邮件服务,其API适用于营销和通知邮件;Mailgun的API灵活强大,支持多种语言;Postmark专注于Transactional邮件,API设计简洁。每个平台都提供详尽的文档和支持,用户可根据需求选择。
|
安全 应用服务中间件 网络安全
Harbor基于docker-compose部署【亲测有效】
Harbor基于docker-compose部署【亲测有效】
2351 4
|
弹性计算 固态存储 数据可视化
购买阿里云服务器多少钱?2000元预算服务器配置
购买阿里云服务器多少钱?2000元预算服务器配置,2023年阿里云服务器租用费用,轻量应用服务器和云服务器ECS优惠价格表,阿里云轻量应用服务器2核2G3M带宽轻量服务器一年108元,2核4G4M带宽轻量服务器一年297.98元12个月,云服务器ECS包括通用算力型u1、ECS计算型c7、通用型g7和内存型r7均有活动
424 0
|
存储 消息中间件 Unix
第二章 进程的描述与控制【操作系统】3
第二章 进程的描述与控制【操作系统】3
332 0
|
SQL Oracle 关系型数据库
一款在线ER模型设计工具,支持MySQL、SQLServer、Oracle、Postgresql sql导入
给大家介绍一款在线ER模型生成的工具,可以针对多种数据库的DDL文件在线生成ER模型图表,支持MySQL、SQLServer、Oracle、PostgreSQL等数据库。主要功能如下: 支持表的创建,同时可以根据数据库的类型不同编辑表结构、字段类型、主键、默认值、索引、备注信息等等 支持视图,触发器,sequence,存储过程,函数的查看及编辑 同步生成SQL供用户操作 访问地址: 数据库ER模型图。
5717 0
|
10天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
6天前
|
人工智能 机器人 Linux
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI智能体,支持飞书等多平台对接。本教程手把手教你Linux下部署,实现数据私有、系统控制、网页浏览与代码编写,全程保姆级操作,240字内搞定专属AI助手搭建!
4384 13
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
|
5天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
3668 9
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手