题目 - PV
内容
解析
创建一个pv,名字为app-config,大小为2Gi,访问模式为ReadWriteMany。Volume的类型为hostPath,路径为/srv/app-config
命令
app-config.yaml
apiVersion: v1 kind: PersistentVolume metadata: name: app-config labels: type: local spec: storageClassName: manual capacity: storage: 2Gi accessModes: - ReadWriteMany hostPath: path: "/srv/app-config"
kubectl create -f app-config.yaml
结果
题目 - PVC
内容
解析
创建一个名字为pv-volume的pvc,指定storageClass为csi-hostpath-sc,大小为10Mi
然后创建一个Pod,名字为web-server,镜像为nginx,并且挂载该PVC至/usr/share/nginx/html,挂载的权限为ReadWriteOnce。之后通过kubectl edit或者kubectl path将pvc改成70Mi,并且记录修改记录。
命令
搭建环境
使用参考中的github项目的examples中的csi-storageclass.yaml
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: csi-hostpath-sc provisioner: hostpath.csi.k8s.io reclaimPolicy: Delete volumeBindingMode: Immediate allowVolumeExpansion: true
解题
pv-volume-pvc.yaml
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pv-volume spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Mi storageClassName: csi-hostpath-sc
web-server-pod.yaml
apiVersion: v1 kind: Pod metadata: name: web-server spec: containers: - name: nginx image: nginx volumeMounts: - mountPath: "/usr/share/nginx/html" name: pv-volume volumes: - name: pv-volume persistentVolumeClaim: claimName: pv-volume
命令
kubectl create -f pv-volume-pvc.yaml kubectl create -f web-server-pod.yaml
结果
可以看到pvc和Pod均创建成功。
参考
k8s学习-持久化存储(Volumes、hostPath、emptyDir、PV、PVC)详解与实战
更多k8s相关内容,请看文章:k8s学习-思维导图与学习笔记