K8S笔记-持久化存储(PV和PVC)
作者:myluzh 分类: Kubernetes 长度:1667 阅读:476
0x01 PV PVC概述
PV(PersistentVolume)是对底层的共享存储的一种抽象,由管理员进行创建和配置。它和具体的底层的共享存储技术的实现方式有关,比如Ceph、GlusterFS、NFS等,都是通过插件机制完成与共享存储的对接。
PVC(PersistentVolumeClaim)是Kubernetes中的一个资源对象,用于抽象地申请和管理持久化存储资源。它向POD(容器运行的环境)提供了一个简单、抽象的接口,用于绑定和挂载一个POD所需要的存储卷。POD可以通过PVC来自动配置和使用存储卷。
实现流程:
0x02 申请PVC例子
1、定义一个pv,名字为my-pv
[root@k8s-master01 k8s]# vi my-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 5Gi # 指定存储容量为 5Gi
accessModes:
- ReadWriteMany # 允许读写访问模式
nfs:
path: /volume1/DataStore/k8s_nfs
server: 172.16.10.15
[root@k8s-master01 k8s]# kubectl apply -f my-pv.yaml
persistentvolume/my-pv created
2、创建应用部署并申请PVC持久卷
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-dep1
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: wwwroot
mountPath: /usr/share/nginx/html
ports:
- containerPort: 80
volumes:
- name: wwwroot
persistentVolumeClaim:
claimName: my-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce # 或者其他的访问模式,例如ReadWriteMany
resources: # 这个字段通常包含请求的存储资源大小,例如:
requests:
storage: 5Gi # 请求5Gi的存储资源