K8s的网络共享存储原理

K8s的网络共享存储原理

背景

Kubernetes对于有状态的容器应用或者对数据需要持久化的应用,不仅需要将容器内的目录挂载到宿主机的目录或者emptyDir临时存储
卷,而且需要更加可靠的存储来保存应用产生的重要数据,以便容器应用在重建之后仍然可以使用之前的数据。

PV

定义

​ PV是对底层网络共享存储的抽象。PV由管理员创建和配置,它与共享存储的具体实现直接相关。PV作为存储资源,包括:

  • 存储能力
  • 访问模式
  • 存储类型
  • 回收策略
  • 后端存储类型
K8s支持的PV类型
  • NFS
  • AWS
  • Fc等
PV的关键配置参数
  • 存储能力——storage=xx
  • 存储卷模式——volumeMode=xxx
  • 访问模式AccessMode
    • ReadWriteOnce(只读,且供一个Node挂载)
    • ReadOnlyMany(只读,可供多个node挂载)
    • ReadWriteMany(读写,可供多个node挂载)
  • 存储类别——StorageClassName
  • 回收策略——persistentVolumeReclaimPolicy
  • 挂载参数——mountOptions
  • 节点亲和性——nodeAffinity(只适用于Local存储卷)
PV生命周期
  • Available——可用状态,还未与某个PVC绑定
  • Bound——已与某个PVC绑定
  • Released——绑定的PVC已经删除,资源已经释放,但是还没有被集群回收
  • Failed——自动回收资源失败

PVC

定义

​ PVC则是用户对存储资源的一个“申请“。PVC消费PV资源,PVC可以申请特定的存储空间和访问模式。

StorageClass4种类型:快速存储、慢速存储、有数据冗余、无数据冗余。

​ PVC作为用户对存储资源的需求申请,主要包括:

  • 存储空间请求
  • 访问模式
  • PV选择条件
  • 存储类别等信息。
PVC的关键参数
  • 资源请求——request.storage
  • 访问模式AccessMode
  • 存储卷模式——块存储,文件系统
  • PV选择条件——label selector:matchLabels和matchExpressions
  • 存储类别——StorageClassName

PV与PVC的生命周期

在这里插入图片描述

资源回收

静态模式

在这里插入图片描述

动态模式

在这里插入图片描述

注意

PV与PVC都受限于命名空间namespace,PVC在选择PV时受到namespace的限制,只有相同namespace的PV才能与PVC进行绑定。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值