k8s持久化存储pv和pvc
时间: 2023-12-26 16:28:37 浏览: 81
PV(PersistentVolume)和PVC(PersistentVolumeClaim)是Kubernetes中用于实现持久化存储的重要概念。
PV是集群中的一块存储,可以是NFS、iSCSI、本地存储等,由管理员进行配置或使用存储类进行动态配置。PV定义了存储的容量、访问模式、持久化存储的类型等属性。PV的生命周期是独立于Pod的,即使Pod被删除,PV仍然存在,可以被其他Pod继续使用。
PVC是一个持久化存储卷,用于访问各种类型的持久化存储,如本地存储、网络存储、云存储等。PVC的使用使应用程序更加灵活和可移植,同时也提高了存储资源的利用率。PVC和PV是一一对应的关系,即一个PVC只能绑定一个PV,而一个PV也只能被一个PVC绑定。
下面是一个演示k8s持久化存储PV和PVC的案例:
1. 创建PV:
```yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: my-storage-class
nfs:
path: /data
server: nfs-server-ip
```
2. 创建PVC:
```yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: my-storage-class
```
3. 创建Pod,并挂载PVC卷:
```yaml
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: nginx
volumeMounts:
- name: my-volume
mountPath: /data
volumes:
- name: my-volume
persistentVolumeClaim:
claimName: my-pvc
```
4. 删除PVC的正确步骤:
```shell
kubectl delete pod my-pod
kubectl delete pvc my-pvc
kubectl delete pv my-pv
```