大白话说明白K8S的PV / PVC / StorageClass( 三 )


文章插图
查看是否创建了对应的pod,如果没有修改镜像地址会一直拉取失败,如下图:

大白话说明白K8S的PV / PVC / StorageClass

文章插图
修改镜像地址后成功启动Pod,如下图:
大白话说明白K8S的PV / PVC / StorageClass

文章插图
2.2、使用StorageClass文中演示的是:Pod利用StorageClass自动创建PV,同时在对应的存储目录上创建了文件,写入了数据 。
yaml文件如下:
apiVersion: storage.k8s.io/v1kind: StorageClassmetadata:name: nfs-storage-1provisioner: cluster.local/nfs-subdir-external-provisionerparameters:# 设置为"false"时删除PVC不会保留数据 , "true"则保留数据archiveOnDelete: "false"mountOptions:# 指定NFS版本,这个需要根据NFS Server版本号设置- nfsvers=4---# 创建PVCkind: PersistentVolumeClaimapiVersion: v1metadata:name: nfs-storage-pvc-1namespace: dev1spec:storageClassName: nfs-storage-1#需要与上面创建的storageclass的名称一致accessModes:- ReadWriteOnceresources:requests:storage: 10Mi---kind: PodapiVersion: v1metadata:name: nfs-storage-pod-1namespace: dev1spec:containers:- name: nfs-storage-pod-1image: busyboxcommand:- "/bin/sh"args:- "-c"- "touch /mnt/teststorage && echo 111 > /mnt/teststorage && exit 0 || exit 1"## 创建一个名称为"SUCCESS"的文件volumeMounts:- name: nfs-pvcmountPath: "/mnt"restartPolicy: "Never"volumes:- name: nfs-pvcpersistentVolumeClaim:claimName: nfs-storage-pvc-1执行kubectl命令后,可以看到如下效果:
大白话说明白K8S的PV / PVC / StorageClass

文章插图

大白话说明白K8S的PV / PVC / StorageClass

文章插图
可以看到如我们预料的那样,通过storageClass自动创建了PV,同时在NFS对应的存储目录上创建了文件 , 写入了数据 。
至此,我们实践过程全部结束 。
三、总结【大白话说明白K8S的PV / PVC / StorageClass】本文主要讲解了PV、PVC、StorageClass的理论和实战 。
一句话总结:PV、PVC是K8S用来做存储管理的资源对象,它们让存储资源的使用变得可控 , 从而保障系统的稳定性、可靠性 。StorageClass则是为了减少人工的工作量而去自动化创建PV的组件 。所有Pod使用存储只有一个原则:先规划 → 后申请 → 再使用 。




推荐阅读