k8s pv pvc
2023-12-22 17:34 qgbo 阅读(8) 评论(0) 编辑 收藏 举报https://artifacthub.io/packages/helm/nfs-subdir-external-provisioner/nfs-subdir-external-provisioner
部署:
helm install -n nfs-provisioner nfs-subdir-external-provisioner-retain nfs-subdir-external-provisioner/nfs-subdir-external-provisioner --set nfs.server={IP} --set nfs.path=/nfsshare --set storageClass.reclaimPolicy=Retain --set storageClass.name=nfs-retain
这样部署之后,在statefulset 中使用这个 pv
然后删掉 namespace, 对应的PV 变为 release 状态.
再次部署,会生成新的PVC:
kubectl get pv, 就是没用用上之前的
kubectl get pvc:
如果要恢复数据: 删除 spec.claimRef, 重新部署即可
k get sc // 查看存储类
kubectl patch storageclass <your-class-name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' // 设置默认存储类
如下代码测试本地的PVC:
apiVersion: v1
kind: PersistentVolume
metadata:
name: mypv
labels:
type: local
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-path
capacity:
storage: 10Gi
hostPath:
path: "/nfs"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: local-path-pvc
spec:
volumeName: mypv
accessModes:
- ReadWriteOnce
storageClassName: local-path
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: docker.io/library/busybox
name: test-container
volumeMounts:
- mountPath: /cache
name: cache-volume
volumes:
- name: cache-volume
persistentVolumeClaim:
claimName: local-path-pvc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | [root@master ~]# cat pv.yaml apiVersion: v1 kind: PersistentVolume metadata: name: storage-loki-0 labels: type: local spec: accessModes: - ReadWriteOnce storageClassName: "local-storage" capacity: storage: 10Gi hostPath: path: "/nfs" [root@master ~]# cat pvc.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: foo-pvc spec: storageClassName: "local-storage" # Empty string must be explicitly set otherwise default StorageClass will be set accessModes: - ReadWriteOnce resources: requests: storage: 1Gi [root@master ~]# cat sc.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: local-storage #表示不需要自动创建PV provisioner: kubernetes.io/no-provisioner #WaitForFirstConsumer表示需要等到Pod运行之后才让PVC和PV绑定。因为在使用Local Persistent Volume的时候PV和对应的PVC必须 #要跟随Pod在同一node下面,否则会调度失败。 volumeBindingMode: WaitForFirstConsumer |
气功波(18037675651)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律