|
|
|
|
@ -1,40 +1,44 @@
|
|
|
|
|
apiVersion: v1
|
|
|
|
|
kind: PersistentVolume
|
|
|
|
|
# 第一部分:数据库(MySQL)专用持久卷配置
|
|
|
|
|
apiVersion: v1 # PV 资源使用的 Kubernetes API 版本
|
|
|
|
|
kind: PersistentVolume # 资源类型为持久卷(PV),用于提供集群级别的存储资源
|
|
|
|
|
metadata:
|
|
|
|
|
name: local-pv-db
|
|
|
|
|
name: local-pv-db # PV 的名称,需唯一,这里明确关联数据库(db)
|
|
|
|
|
spec:
|
|
|
|
|
capacity:
|
|
|
|
|
storage: 10Gi
|
|
|
|
|
volumeMode: Filesystem
|
|
|
|
|
accessModes:
|
|
|
|
|
- ReadWriteOnce
|
|
|
|
|
persistentVolumeReclaimPolicy: Retain
|
|
|
|
|
storageClassName: local-storage
|
|
|
|
|
local:
|
|
|
|
|
path: /mnt/local-storage-db
|
|
|
|
|
nodeAffinity:
|
|
|
|
|
required:
|
|
|
|
|
capacity: # 定义 PV 的存储容量
|
|
|
|
|
storage: 10Gi # 分配 10GiB 存储空间(数据库通常需要较大空间)
|
|
|
|
|
volumeMode: Filesystem # 卷模式:Filesystem 表示以文件系统形式挂载(另一种是 Block 块设备)
|
|
|
|
|
accessModes: # 访问模式:定义 PV 可被如何访问
|
|
|
|
|
- ReadWriteOnce # 仅允许单个节点以读写方式挂载(适合数据库等需独占写入的场景)
|
|
|
|
|
persistentVolumeReclaimPolicy: Retain # 回收策略:Retain 表示 PV 被释放后保留数据,需手动清理
|
|
|
|
|
storageClassName: local-storage # 存储类名称,用于与 PersistentVolumeClaim(PVC)匹配
|
|
|
|
|
local: # 声明为本地存储(使用节点上的本地磁盘,非分布式存储)
|
|
|
|
|
path: /mnt/local-storage-db # 本地存储的实际路径(需在对应节点上提前创建该目录)
|
|
|
|
|
nodeAffinity: # 节点亲和性:限制 PV 只能被特定节点使用(本地存储必须配置)
|
|
|
|
|
required: # 强制要求:必须满足以下条件才能使用该 PV
|
|
|
|
|
nodeSelectorTerms:
|
|
|
|
|
- matchExpressions:
|
|
|
|
|
- key: kubernetes.io/hostname
|
|
|
|
|
operator: In
|
|
|
|
|
- matchExpressions: # 匹配规则
|
|
|
|
|
- key: kubernetes.io/hostname # 匹配节点的主机名标签
|
|
|
|
|
operator: In # 操作符:In 表示值在指定列表中
|
|
|
|
|
values:
|
|
|
|
|
- master
|
|
|
|
|
---
|
|
|
|
|
- master # 仅允许主机名为 "master" 的节点使用该 PV
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 第二部分:Django 应用静态文件专用持久卷配置
|
|
|
|
|
--- # 分隔符:用于在一个文件中定义多个资源
|
|
|
|
|
apiVersion: v1
|
|
|
|
|
kind: PersistentVolume
|
|
|
|
|
metadata:
|
|
|
|
|
name: local-pv-djangoblog
|
|
|
|
|
name: local-pv-djangoblog # PV 名称,关联 Django 应用
|
|
|
|
|
spec:
|
|
|
|
|
capacity:
|
|
|
|
|
storage: 5Gi
|
|
|
|
|
storage: 5Gi # 分配 5GiB 存储空间(静态文件需求较小)
|
|
|
|
|
volumeMode: Filesystem
|
|
|
|
|
accessModes:
|
|
|
|
|
- ReadWriteOnce
|
|
|
|
|
- ReadWriteOnce # 单节点读写(静态文件通常由单节点写入,多节点读取可考虑 ReadOnlyMany)
|
|
|
|
|
persistentVolumeReclaimPolicy: Retain
|
|
|
|
|
storageClassName: local-storage
|
|
|
|
|
storageClassName: local-storage # 与前面的 PV 共用同一存储类
|
|
|
|
|
local:
|
|
|
|
|
path: /mnt/local-storage-djangoblog
|
|
|
|
|
path: /mnt/local-storage-djangoblog # Django 静态文件的本地存储路径
|
|
|
|
|
nodeAffinity:
|
|
|
|
|
required:
|
|
|
|
|
nodeSelectorTerms:
|
|
|
|
|
@ -42,24 +46,25 @@ spec:
|
|
|
|
|
- key: kubernetes.io/hostname
|
|
|
|
|
operator: In
|
|
|
|
|
values:
|
|
|
|
|
- master
|
|
|
|
|
- master # 同样限制在 "master" 节点
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 第三部分:资源文件专用持久卷配置
|
|
|
|
|
---
|
|
|
|
|
apiVersion: v1
|
|
|
|
|
kind: PersistentVolume
|
|
|
|
|
metadata:
|
|
|
|
|
name: local-pv-resource
|
|
|
|
|
name: local-pv-resource # PV 名称,关联通用资源文件
|
|
|
|
|
spec:
|
|
|
|
|
capacity:
|
|
|
|
|
storage: 5Gi
|
|
|
|
|
storage: 5Gi # 分配 5GiB 存储空间
|
|
|
|
|
volumeMode: Filesystem
|
|
|
|
|
accessModes:
|
|
|
|
|
- ReadWriteOnce
|
|
|
|
|
persistentVolumeReclaimPolicy: Retain
|
|
|
|
|
storageClassName: local-storage
|
|
|
|
|
local:
|
|
|
|
|
path: /mnt/resource/
|
|
|
|
|
path: /mnt/resource/ # 资源文件(如上传的图片、附件等)的本地存储路径
|
|
|
|
|
nodeAffinity:
|
|
|
|
|
required:
|
|
|
|
|
nodeSelectorTerms:
|
|
|
|
|
@ -67,23 +72,25 @@ spec:
|
|
|
|
|
- key: kubernetes.io/hostname
|
|
|
|
|
operator: In
|
|
|
|
|
values:
|
|
|
|
|
- master
|
|
|
|
|
- master # 限制在 "master" 节点
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 第四部分:Elasticsearch 搜索引擎专用持久卷配置
|
|
|
|
|
---
|
|
|
|
|
apiVersion: v1
|
|
|
|
|
kind: PersistentVolume
|
|
|
|
|
metadata:
|
|
|
|
|
name: local-pv-elasticsearch
|
|
|
|
|
name: local-pv-elasticsearch # PV 名称,关联 Elasticsearch
|
|
|
|
|
spec:
|
|
|
|
|
capacity:
|
|
|
|
|
storage: 5Gi
|
|
|
|
|
storage: 5Gi # 分配 5GiB 存储空间(用于存储 ES 索引数据)
|
|
|
|
|
volumeMode: Filesystem
|
|
|
|
|
accessModes:
|
|
|
|
|
- ReadWriteOnce
|
|
|
|
|
persistentVolumeReclaimPolicy: Retain
|
|
|
|
|
storageClassName: local-storage
|
|
|
|
|
local:
|
|
|
|
|
path: /mnt/local-storage-elasticsearch
|
|
|
|
|
path: /mnt/local-storage-elasticsearch # ES 数据的本地存储路径
|
|
|
|
|
nodeAffinity:
|
|
|
|
|
required:
|
|
|
|
|
nodeSelectorTerms:
|
|
|
|
|
@ -91,4 +98,4 @@ spec:
|
|
|
|
|
- key: kubernetes.io/hostname
|
|
|
|
|
operator: In
|
|
|
|
|
values:
|
|
|
|
|
- master
|
|
|
|
|
- master # 限制在 "master" 节点
|