视频来源:B站《(2022版)最新、最全、最详细的Kubernetes(K8s)教程,从K8s安装到实战一套搞定》
一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:(2022版)一套教程搞定k8s安装到实战 | 汇总_COCOgsta的博客-CSDN博客
Volume:NFS、CEPH、GFS
PersistentVolume:NFS、CEPH、GFS
K8s:Volume -> CEPH(管理员知道)。开发人员对volume不熟悉,因此引入了PV/PVC概念。
PV:由k8s配置的存储,PV同样是集群的一类资源,yaml定义。
PVC:对PV的申请,Persistent Volume Claim。
PV文档:kubernetes.io/docs/concep…
NFS类型的PV
- apiVersion: v1
- kind: PersistentVolume
- metadata:
- name: pv0003
- spec:
- capacity:
- storage: 5Gi
- volumeMode: Filesystem
- accessModes:
- - ReadWriteOnce
- persistentVolumeReclaimPolicy: Recycle
- storageClassName: slow
- mountOptions:
- - hard
- - nfsvers=4.1
- nfs:
- path: /tmp
- server: 172.17.0.2
- 复制代码
PV的状态:
首选创建了一个NFS的PV,nfs-pv.yaml
- apiVersion: v1
- kind: PersistentVolume
- metadata:
- name: pv001
- spec:
- capacity:
- storage: 5Gi
- volumeMode: Filesystem
- accessModes:
- - ReadWriteMany
- persistentVolumeReclaimPolicy: Recycle
- storageClassName: nfs-slow
- mountOptions:
- - hard
- - nfsvers=4.1
- nfs:
- path: /data/k8s-data/testDir
- server: 192.168.1.22
- 复制代码
创建一个PVC,test-pvc.yaml,绑定到指定类型的PV:
- apiVersion: v1
- kind: PersistentVolumeClaim
- metadata:
- name: myclaim
- spec:
- accessModes:
- - ReadWriteMany
- volumeMode: Filesystem
- resources:
- requests:
- storage: 2Gi
- storageClassName: nfs-slow
- 复制代码
更改deployment使用PVC类型的volume
- volumeMounts:
- - mountPath: /tmp/pvc
- name: pvc-test
- volumes:
- - name: pvc-test
- persistentVolumeClaim:
- claimName: myclaim # PVC的名称
- 复制代码
很多情况下:
创建PVC之后,一直绑定不上PV(Pending):
创建挂载了PVC的Pod之后,一直处于Pending的状态:
删除PVC后,k8s会创建一个用于回收的Pod,根据PV的回收策略进行PV的回收,回收完后PV的状态就会变成可被绑定的状态也就是空闲状态,其他的Pending状态的PVC如果匹配到了这个PV,他就能和这个PV进行绑定。