博客
关于我
k8s之共享存储概述以及演示
阅读量:440 次
发布时间:2019-03-06

本文共 2361 字,大约阅读时间需要 7 分钟。

Kubernetes 共享存储机制

在 Kubernetes 中,用户可以通过多种方式对应用进行持久化,例如将容器内的目录挂载到宿主机的容器目录或 emptyDir 临时存储卷。然而,Kubernetes 还提供了更高级的存储资源管理机制,即 PersistentVolume(PV)和 PersistentVolumeClaim(PVC),允许使用外部存储设备。

PersistentVolume(PV)

PersistentVolume 是对底层网络共享存储的抽象视角,将共享存储定义为一种可消费的“资源”。与 Node 或者其他 Kubernetes 资源类似,PV 由管理员创建和配置,与共享存储的具体实现直接相关。PV 可以指定存储的容量、访问模式以及重复利用策略等属性。

例如,可以通过以下 YAML 定义一个 PV:

apiVersion: v1kind: PersistentVolumemetadata:  name: pv  namespace: pv  labels:    name: pvspec:  capacity: 2Gi  accessModes: - ReadWriteOnce  persistentVolumeReclaimPolicy: Recycle  hostPath: path: /usr/soft/k8s/yaml/pv/storage

上述配置表示创建一个名为 pv 的 PV,占用 2Gi 存储空间,支持读写一次访问模式,存储可以被回收利用,并挂载到宿主机 /usr/soft/k8s/yaml/pv/storage 目录。

PersistentVolumeClaim(PVC)

PVC 是对 PV 的一个“申请”,类似于 Pod 消耗 Node 资源一样,PVC 可以申请特定的存储空间和访问模式。PVC 的创建和使用过程与 PV 类似,主要区别在于申请的存储容量和访问模式。

例如,可以通过以下 YAML 定义一个 PVC:

apiVersion: v1kind: PersistentVolumeClaimmetadata:  name: pvc  namespace: pv  labels:    name: pvcspec:      accessModes: - ReadWriteOnce      resources:        requests:          storage: 1Gi        selector:          matchLabels:            name: pv

上述配置表示创建一个名为 pvc 的 PVC,申请 1Gi 的存储空间,支持读写一次访问模式,并与名为 pv 的 PV 绑定。

存储设备管理

为了更好地管理存储资源,Kubernetes 提供了 StorageClass 的概念。StorageClass 用于标记存储资源的特性和性能,管理员可以将存储资源定义为某种类别,类似于存储设备对自身的配置描述。通过 StorageClass,可以直观地了解各种存储资源的特性,从而根据应用需求去申请存储资源。

此外,Kubernetes 提供了 Container Storage Interface(CSI)机制,目标是在 Kubernetes 与外部存储系统之间建立一套标准的存储管理接口,通过该接口为容器提供存储服务。

使用案例

在实际应用中,可以按照以下步骤操作:

  • 定义 PV:管理员创建一个 PV,定义其容量、访问模式等属性,并指定挂载路径。
  • 申请 PVC:用户对 PV 进行申请,指定所需的存储空间和访问模式。
  • 挂载 PVC:在 Pod 中使用 PVC,挂载到指定的容器目录,实现数据持久化。
  • 例如,以下 YAML 定义了一个使用 PVC 挂载的 Pod:

    apiVersion: v1kind: Podmetadata:  name: nginx  namespace: pv  labels:    name: nginxspec:  containers:  - name: nginx    image: nginx    imagePullPolicy: IfNotPresent    volumeMounts:    - name: pv      mountPath: /pvc      readOnly: false  ports:  - containerPort: 80volumes:  - name: pv    persistentVolumeClaim:      claimName: pvc

    上述配置表示创建一个名为 nginx 的 Pod,配置了一个挂载 PVC 的容器,存储数据位于容器的 /pvc 目录。

    验证

    创建完成后,可以执行以下步骤验证:

  • 进入容器:使用 kubectl exec 命令进入容器。
  • 创建文件:在容器的 /pvc 目录中创建文件(例如 test.txt)。
  • 检查 PV:在 PV 所在的宿主机目录中查看是否存在对应文件。
  • 例如,可以执行以下命令查看 Pod 的运行节点:

    kubectl get pods -w

    然后,进入节点并检查相应目录:

    ssh node-1ls /usr/soft/k8s/yaml/pv/storage

    可以看到,节点目录中会存在容器创建的文件。如果在节点目录中添加文件,容器挂载目录也会同步更新。

    结尾

    以上就是 PV 和 PVC 的简单使用方法,更多详细内容请关注后续文章。希望本文能为您的 Kubernetes 存储配置提供帮助。如果对内容有帮助,请记得点赞和关注,支持创作继续!

    转载地址:http://zsvyz.baihongyu.com/

    你可能感兴趣的文章
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
    查看>>
    NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
    查看>>
    NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
    查看>>
    Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
    查看>>
    NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
    查看>>
    NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022
    查看>>
    NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
    查看>>
    NIFI大数据进阶_NIFI集群知识点_集群的断开_重连_退役_卸载_总结---大数据之Nifi工作笔记0018
    查看>>
    NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
    查看>>
    NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>