k8s集羣中的存儲持久化概述

存儲分類:
直連式存儲,集中式共享存儲,分佈式存儲
文件存儲,塊存儲,對象存儲
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章