增加helm repo
helm repo add openebs https://openebs.github.io/openebs
helm repo update
helm list -n openebs
helm search repo openebs/openebs
给用于openebs的164–167 四台专属虚机打上统一的存储功能标签
for node in node164 node165 node166 node167; do
kubectl label node $node openebs-storage=enabled --overwrite
done
安装
helm upgrade --install openebs openebs/openebs \
--namespace openebs \
--version 4.5.1 \
--create-namespace \
--set engines.replicated.mayastor.enabled=false \
--set engines.local.lvm.enabled=false \
--set engines.local.zfs.enabled=false \
--set alloy.enabled=false \
--set loki.enabled=false \
--set minio.enabled=false
其他: 配置并发建立pv的工作线程数参数 –set localpv.kubeController.workerThreads=100 # 🌟 核心参数:设置并发建立/删除 PV 的线程数为 100
建立storageclass配置文件,分为文件和数据库两种storageclass
#cat openebs-storage.yaml
#=====================================================================
#存储类 1:核心有状态/数据库专属盘 (对接 50G 的 /data2,享 Retain 强保护)
#=====================================================================
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: openebs-hostpath-mysql-data2
annotations:
openebs.io/cas-type: local # 声明使用 OpenEBS 原生的 local 引擎
cas.openebs.io/config: | # 官网核心语法:使用注解传递 BasePath
- name: StorageType
value: hostpath
- name: BasePath
value: /data2 # 精准锁定 50G 的专用数据库高速通道
provisioner: openebs.io/local # OpenEBS 4.x 统一的本地卷驱动名称
reclaimPolicy: Retain # 生产红线:Retain 策略。误删 PVC 时,物理数据绝不 rm -rf
volumeBindingMode: WaitForFirstConsumer # 延迟卷绑定,确保有状态 Pod 节点先决,OpenEBS 再去对应的机器建子目录
allowedTopologies: # 🌟 修正语法:K8s 原生只认 matchLabelExpressions 键值对结构
- matchLabelExpressions:
- key: openebs-storage
values:
- "enabled" # 只有被打上 openebs-storage=enabled 的节点才能参与调度
---
#=====================================================================
#存储类 2:通用/网关共享盘 (对接 200G 的 /data1,跑 Nginx 等无状态系统)
#=====================================================================
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: openebs-hostpath-sys-data1
annotations:
openebs.io/cas-type: local
cas.openebs.io/config: |
- name: StorageType
value: hostpath
- name: BasePath
value: /data1 # 精准锁定 200G 的通用共享大盘根目录
provisioner: openebs.io/local
reclaimPolicy: Delete # 通用系统使用 Delete 策略,下线时自动清空物理子目录,防止垃圾堆积
volumeBindingMode: WaitForFirstConsumer # 保持延迟绑定
allowedTopologies: # 🌟 修正语法:共享大盘同样锁死在拥有存储标签的物理机上
- matchLabelExpressions:
- key: openebs-storage
values:
- "enabled"