第12章:Kubernetes 存储卷


前言

根据应用本身是否需要持久存储数据,以及某一次请求跟此前的请求时间是否有关联性,可以将应用分为:有状态要存储、有状态不要存储、无状态要存储、无状态不要存储;
大多数有状态应用或者跟数据存储服务相关的应用,都需要持久存储数据;
把pod内部的某一目录和宿主机节点本地的某一目录(存储卷)建立关联映射关系;
注意:存储卷属于pod,不属于容器,pod内的其他所有容器都是共享基础架构容器pause的存储卷和网络名称空间等;


一、emptyDir

emptyDir:存储目录随着pod的删除或者消亡而删除或消亡,可以按需创建,起到临时目录或者缓存的效果;——pod级持久化存储;
emptyDir存储使用示例扩展:
在这里插入图片描述

gitRepo,本质还是emptyDir,只是从远端的Git中克隆一份代码到本地存储空间,之后远端的Git和本地存储空间再无关联关系;

使用存储卷的步骤:
1,在pod上定义一个Volume;在spec下面建立一个Volume,如pods.spec.volumes.emptyDir;
2,在container中挂载到pod对应的Volume中,即pods.spec.containers.volumeMounts;

二、HostPath

hostpath:主机路径,将pod所在节点之上的,但是在名称空间之外的文件系统某一目录与pod所定义的目录建立关联关系,在pod被删除时,该存储卷依然存在,但不支持跨节点重新调度;——节点级持久化存储;

示例如下:
在这里插入图片描述


三、NFS

NFS:(监听2049端口)
需要先在提供NFS的服务器或者存储介质下载并安装NFS,并完成相关步骤,具体如下:

  1. 下载NFS:yum install nfs-utils -y
  2. 创建共享目录:mkdir /data/nfs -pv
  3. 服务暴露:vim /etc/exports
  4. 启动服务:systemctl start nfs
    其他常识:查看服务器节点域名解析情况:cat /etc/hosts

示例如下:
在这里插入图片描述

注意:NFS并不是分布式存储,如果作为NFS的存储介质宕机,数据也将丢失,因此建议大家使用分布式存储,如自建的GlusterFS(需要结合Heketi使用)、Ceph(包含RBD和FS两种,提供的restful接口,可以直接被kubernetes所使用),,或者带有副本的呢过冗余能力的云存储;


四、其他

网络共享存储:
SAN:FC-SAN、IP-SAN、iSCSI等;
NAS:NFS、cifs等

分布式存储:
GlusterFS、Ceph-RBD(块)、CephFS(文件)等;

云存储:(仅针对Kubernetes托管在某一公有云之上的场景)
阿里云OSS、亚马逊云的EBS、Azure Disk、gcePersistentDisk、OpenStack Cinder等等;


五、PV和PVC

PV和PVC是一一绑定关系,一旦某个PV被某个PVC占用,则显示bound状态;但是一个PVC可以被多个pod所访问,具体看PVC的accessModes;
注意:PV是集群级别的资源,不属于某个名称空间;但是PVC是属于名称空间级别的资源,存储在etcd(存储API-server状态)当中,跟节点没有关系;
在这里插入图片描述

Access Modes

  • RWO - ReadWriteOnce
  • ROX - ReadOnlyMany
  • RWX - ReadWriteMany
  • RWOP - ReadWriteOncePod

不同角色的职责划分如下图所示:
在这里插入图片描述

注意:
这里,PV和PVC是需要由不同角色提前准备好和创建好的,而且PV需要满足PVC的各种要求,比如访问模式,容量大小等等,否则就会一直pending下去直到有符合条件的PV被创建才能running起来,,为了解决这个问题,即引入了存储资源的动态供给。

六、StorageClass

StorageClass,用于提供抽象PV存储服务,满足PV存储的动态供给;
根据自定义的任意维度进行分类,比如可以按照Ceph、地理位置、价格等均可;
存储设备需要支持restful 风格的接口,NFS不支持,Ceph本身就具备,可以根据PVC的请求动态生成符合要求的PV供其绑定使用;

其他:GlusterFS,需要结合Heketi才能使用;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Davidwatt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值