Pod ...
spec:
volumes:
- name: html
emptyDir: {} # emptyDir 还支持使用如下参数
# medium: default # 存储介质类型, default 默认使用节点所在的存储, Memory 使用内存
# sizeLimit: 10M # 存储卷的空间限额, 默认为nil, 表示不限制, 在指定 Memory 的时候必须要设置值
同一个Pod内共享 emptyDir
gitRepo 和 emptyDir 有点像, 使用gitRepo存储卷的Pod资源在创建时,会首先创建一个空目录(emptyDir)并克隆(clone)一份指定的Git仓库中的数据至该目录,而后再创建容器并挂载该存储卷。
<aside> 💡 k8s 1.12 之后被废弃
</aside>
hostPath类型的存储卷是指将工作节点上某文件系统的目录或文件挂载于Pod中的一种存储卷,它可独立于Pod资源的生命周期,因而具有持久性。但它是工作节点本地的存储空间,仅适用于特定情况下的存储卷使用需求,例如,将工作节点上的文件系统关联为Pod的存储卷,从而使得容器访问节点文件系统上的数据。这一点在运行有管理任务的系统级Pod资源需要访问节点上的文件时尤为有用。
Pod...
spec:
volumes:
- name: varlog
hostPath:
path: /var/log # 指定Node节点上的路径
Pod...
spec:
volumes:
- name: redisdata
nfs:
server: nfs.ilinux.io # NFS服务器的IP地址或主机名
path: /data/redis # NFS服务器共享的文件系统路径
readOnly: false # 是否以只读方式挂载
Ceph是一个专注于分布式的、弹性可扩展的、高可靠的、性能优异的存储系统平台,同时支持提供块设备、文件系统和REST三种存储接口。它是一个高度可配置的系统,并提供了一个命令行界面用于监视和控制其存储集群。Ceph还包含鉴证和授权功能,可兼容多种存储网关接口,如OpenStack Swift和Amazon S3。Kubernetes也支持通过RBD卷类型使用Ceph存储系统为Pod提供存储卷。
Pod...
spec:
volumes:
- name: redis-rbd-vol
rbd:
monitors: # Ceph存储监视器, 逗号分割的字符串列表
- '172.16.0.56:6789'
- '172.16.0.57:6789'
- '172.16.0.58:6789'
pool: kube # 存储次名称
image: redis # image 名称
fsType: ext4 # 要挂载的存储卷的文件系统类型 ext4, xfs, ntfs等
readOnly: false
user: admin
screatRef: # 使用的保存有认证信息的Secret对象
name: ceph-secret
GlusterFS(Gluster File System)是一个开源的分布式文件系统,是水平扩展存储解决方案Gluster的核心,具有强大的横向扩展能力,GlusterFS通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。另外,GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能,是另一种流行的分布式存储解决方案
Pod...
spec:
volumes:
- name: redisdata
glusterfs:
endpoints: glusterfs-endpoints
path: kube-redis # 用到的GlusterFS集群的卷路径
readOnly: false
用于访问Gluster集群的相关节点信息要事先保存于某特定的Endpoints资源中,例如上面示例中调用的glusterfs-endpoints, 如下所示
apiVersion: v1
kind: Endpoints
metadata:
name: glusterfs-endpoints
subsets:
- addresses:
- ip: gfs01.ilinuxio
ports:
- port: 24007
name: glusterd
- ip: gfs02.ilinuxio
ports:
- port: 24007
name: glusterd
- ip: gfs03.ilinuxio
ports:
- port: 24007
name: glusterd