kubernetes 配置示例 - PVC 和 PV
PVC 可以看做是一个接口,PV 可以看做是 PVC 的一个实现。开发人员只需要定义 PVC,提出需要多大的一个存储空间,读取模式是怎么样的,不需要知道数据是通过什么方式存储的。运维人员则提供 PV,可以是 ceph,也可以是 NFS 或者其它。
#定义PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pv-claim
spec:
accessModes:
- ReadWriteOnce
resources:
- requests:
storage: 1Gi
storageClassName: rook-cephfs
上面的 PV,一般情况下是 k8s 通过 Dynamic Provisioning 机制自动创建的。如何自动创建 PV 呢?这里的 storageClassName 就表示用名称为 rook-cephfs 这个 StorageClass 去自动创建 PV。这个 StorageClass 是部署 Rook-Ceph 后创建的。相应的 yaml 文件在官方的下载包的 /cluster/examples/kubernetes/ceph/csi/cephfs/storageclass.yaml (我用的是 1.5 版本 https://rook.io/docs/rook/v1.5/ceph-quickstart.html )
下面定义一个 Pod 使用 PVC
apiVersion: v1
kind: Pod
metadata:
name: pv-pod
spec:
containers:
- name: pv-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: pv-storage
volumes:
- name: pv-storage
persistentVolumeClaim:
claimName: pv-claim #这里的值与上面PVC 里定义的名称一样
as
分类:
Kubernetes
标签:
kubernetes
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏