当前位置: 首页 > news >正文

kubesphere(k8s)如何设置存储类的默认路径

目录

1. 本地存储路径配置

1. 使用 Local Path Provisioner

2. 使用 OpenEBS LocalPV

2. NFS 存储路径配置

3. 重要注意事项

4. 总结


在 KubeSphere 中设置存储类的默认路径,本质上是通过配置存储类(StorageClass)及其背后的存储供给器(Provisioner)来实现的。这个“默认路径”的具体含义会根据你使用的存储类型(本地存储、NFS 等)有所不同。

1. 本地存储路径配置

如果你希望使用集群节点本身的磁盘空间,并指定一个统一的默认路径,通常会使用 ​​Local Path Provisioner​​ 或 ​​OpenEBS LocalPV​​ 这类供给器。

1. 使用 Local Path Provisioner

Rancher 提供的 Local Path Provisioner 是一个流行的本地存储动态供给方案。修改其默认路径(默认为 /opt/local-path-provisioner)的核心是修改其 ConfigMap。

  • ​部署供给器​​:

    kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml
  • ​修改配置​​:编辑 ConfigMap,将路径改为你所需的目录,例如 /app/k8s_data

    kubectl -n local-path-storage edit configmap local-path-config

    在 data.config.json中更新 nodePathMap

    {"nodePathMap": [{"node": "DEFAULT_PATH_FOR_NON_LISTED_NODES","paths": ["/app/k8s_data"]  // 修改为你的自定义路径}]
    }
  • ​重启 Pod​​:删除 Provisioner Pod 以加载新配置。

    kubectl -n local-path-storage delete pod -l app=local-path-provisioner
  • ​设为默认存储类​​(可选):

    kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
2. 使用 OpenEBS LocalPV

OpenEBS 的 LocalPV 供给器则通过 StorageClass 的 ​​annotations​​ 来指定默认路径。

以下 StorageClass 示例将数据目录设置为 /data1/openebs/local

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: localannotations:cas.openebs.io/config: |- name: StorageTypevalue: "hostpath"- name: BasePathvalue: "/data1/openebs/local"  # 在此处修改你的默认路径openebs.io/cas-type: localstorageclass.kubernetes.io/is-default-class: "true"
provisioner: openebs.io/local
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer

2. NFS 存储路径配置

当使用 NFS 作为后端存储时,“默认路径”指的是 ​​NFS 服务器上的共享目录​​。这个路径是在部署 NFS 客户端供给器(如 nfs-subdir-external-provisioner)时定义的。

在部署组的 YAML 文件中,你需要通过环境变量 NFS_PATH和 volumes字段来指定 NFS 服务器的共享目录:

env:
- name: NFS_SERVERvalue: 10.211.55.5 # 你的NFS服务器地址
- name: NFS_PATHvalue: /mnt/k8s/data # 在此处修改NFS服务器上的共享目录路径
volumes:
- name: nfs-client-rootnfs:server: 10.10.15.15 # 与上面保持一致path: /mnt/k8s/data # 与上面保持一致

3. 重要注意事项

在进行任何修改之前,请务必牢记以下几点:

  • ​路径权限​​:确保所有工作节点上你​​自定义的本地路径(如 /app/k8s_data)已存在​​,并且容器进程(通常是非 root 用户)对其有​​读写权限​​。对于 NFS 路径,则需确保 NFS 服务器上的目录已正确导出(export)并设置了相应的权限。

  • ​数据迁移​​:​​修改存储类的路径不会自动迁移现有数据​​。如果你希望保留原有 PersistentVolume (PV) 中的数据,需要先​​手动备份旧路径下的数据​​,然后在新的存储类生效后,​​将数据恢复到新的路径或新创建的 PV 中​​。

  • ​节点亲和性​​:本地存储(Local PV)与特定节点绑定。如果使用本地存储,当 Pod 被重新调度到其他节点时,将无法访问原有节点上的数据。这是选择本地存储时必须要考虑的特性。

  • ​动态供给的便利性​​:使用 StorageClass 进行动态供给可以大幅简化管理流程。你无需为每个应用手动创建 PV,系统会在用户创建 PersistentVolumeClaim (PVC) 时​​自动按需创建 PV​​并绑定。

  • ​规划存储​​:根据你对性能、可用性、扩展性和数据共享的需求,​​谨慎选择存储类型​​(本地、NFS、云存储等)。

  • ​测试先行​​:在对生产环境进行操作前,​​务必在测试环境中验证整个流程​​,包括路径修改、存储类配置、PVC 创建和数据备份恢复。

  • ​使用声明式管理​​:尽量使用 YAML 文件来定义和管理你的 StorageClass、PV、PVC 等资源,这便于版本控制和重现部署过程。

4. 总结

在 KubeSphere 中设置存储类的默认路径,​​核心在于配置存储供给器​​:

  • 对于 ​​本地存储​​(如 Local Path Provisioner),通过​​修改其 ConfigMap​​ 中的 nodePathMap来指定节点上的默认数据目录。

  • 对于 ​​OpenEBS LocalPV​​,通过在 ​​StorageClass 的 annotation (cas.openebs.io/config)​​ 中设定 BasePath来指定。

  • 对于 ​​NFS 存储​​,通过在部署 ​​NFS 客户端供给器​​时设定 ​NFS_PATH环境变量和 volume​​ 来指定 NFS 服务器上的共享目录。

http://www.dtcms.com/a/390582.html

相关文章:

  • 在 k8s 上部署 Kafka 4.0 3节点集群
  • k8s 部署 EMQX 5.8.6 静态三节点集群
  • UVa1374/LA3621 Power Calculus
  • 以 NoETL 重塑 AI-Ready 的数据底座,Aloudata 获评 IDC 面向生成式 AI 的数据基础设施核心厂商
  • 声音转文字API平台推荐
  • Vue3: watch watchEffect
  • 梯度提升算法及其在回归与分类中的应用实战
  • 【自然语言处理与大模型】大模型应用开发四个场景
  • 深度神经网络-传播原理
  • 交通仿真术语
  • 关于Oracle主外键约束的几个SQL语句
  • Python 操作 SQLite:Peewee ORM 与传统 sqlite3.connect 的全方位对比
  • go资深之路笔记(四)中间件(Middleware)设计模式
  • MySQL分库分表迁移:ETL平台如何实现数据合并与聚合
  • [极客大挑战 2019]BabySQL
  • SQL-索引使用
  • 数据库和数据仓库有什么区别
  • SpringBoot2.7X整合Swagger、Redission3.X的bug
  • uniapp安卓原生插件实现开启ble Server[外围模式]
  • React 18.2中使用React Router 6.4
  • 人员在岗监测技术研究:基于计算机视觉的智能监管方案
  • 实测AI Ping,一个大模型服务选型的实用工具——行业实践与深度优化策略
  • 通过QuickAPI优化金融系统API:安全快捷的数据共享最佳实践
  • 第4节 添加视频字幕到剪映(Coze扣子空间剪映小助手零基础教程)
  • 算法 --- BFS 解决 FloodFill 算法
  • telnet 一个 ip+端口却无法退出 着急
  • UVa1602/LA3224 Lattice Animals
  • Docker BuildKit 实现 Golang 编译加速
  • [x-cmd] 在 Android 的 Termux 和 iOS 的 iSH 中安装 X-CMD
  • CTFSHOW 中期测评(一)web486 - web501