存储分类:
直连式存储, 集中式共享存储, 分布式存储
文件存储, 块存储, 对象存储
DAS,NAS,SAN
DAS 属于直连式存储, 将存储设备通过 SCSI 接口或者光纤通道直接和主板连接, 不能实现数据共享
NAS 和 SAN 属于集中式共享存储
NAS 使用 NFS 和 CIFS(原来叫 SMB, 微软的)协议
SAN 分为 FC SAN 和 IP SAN
IP SAN 使用 iSCSI 技术
NFS 实现 Linux 之间共享, smaba 基于 CIFS 协议, 实现 Linux 和 Windows 之间文件共享
ceph 属于分布式共享系统
k8s 集群中支持的持久存储主要包括:
1,node 节点存储
又分为: 随机卷 emptyDir 和固定卷 hostPath
2, 集中式存储 nfs
3, 分布式存储 ceph
4, 特殊卷 configmap 和 secret
创建 pod 时, 字段 volumes 支持的存储类型主要包括:
- $ kubectl explain Pod.spec.volumes
- cephfs
- cinder
- configMap
- emptyDir
- glusterfs
- hostPath
- iscsi
- nfs
- persistentVolumeClaim
- rbd
- secret
创建 pod 或控制器时, 可以直接使用某个后端存储 (如 NFS) 作为其 volumes
也可以使用 pvc 作为其后端 volumes,pvc 和上面的 nfs 等是平级关系
使用 pvc 作为其后端 volumes 时, 访问顺序是 pvc---pv--- 后端存储
创建使用随机卷 emptyDir 的 pod
- apiVersion: v1
- kind: Pod
- metadata:
- labels:
- run: nginx
- name: podxx
- spec:
- volumes:
- - name: vol1
- emptyDir: {} #使用节点目录, 并且随机
- containers:
- - image: nginx
- name: nginx
- volumeMounts:
- - mountPath: /xx #在容器内部挂载的目录
- name: vol1
- - image: busybox
- name: busybox
- command: ['sh','-c','sleep 5000']
- volumeMounts:
- - mountPath: /yy
- name: vol1
创建使用固定卷的 pod
- apiVersion: v1
- kind: Pod
- metadata:
- labels:
- run: nginx
- name: podxx
- spec:
- volumes:
- - name: vol1
- hostPath:
- path: /aa #自动在 pod 所在的节点上创建
- containers:
- - image: nginx
- name: nginx
- volumeMounts:
- - mountPath: /xx
- name: vol1
- - image: busybox
- name: busybox
- command: ['sh','-c','sleep 5000']
- volumeMounts:
- - mountPath: /yy
来源: http://www.bubuko.com/infodetail-3165618.html