在 KubeSphere 中配置 Local Path Provisioner 指向自定义目录 /app/k8s_data

目录

🌟 在 KubeSphere 中配置 Local Path Provisioner 指向自定义目录 /app/k8s_data

📦 一、准备环境

🚀 二、安装 Local Path Provisioner

🛠 三、修改挂载路径到 /app/k8s_data

1️⃣ 编辑 ConfigMap:

2️⃣ 重启 Provisioner Pod 使其生效:

✅ 四、验证效果

1️⃣ 创建 PVC:

2️⃣ 查看 PV 挂载路径:

3️⃣ 检查宿主机路径是否同步:

📌 五、设置为默认 StorageClass(可选)

🧩 总结


🌟 在 KubeSphere 中配置 Local Path Provisioner 指向自定义目录 /app/k8s_data

在 Kubernetes 或 KubeSphere 集群中,配置一个轻量级的本地存储类(StorageClass)对于测试环境或小规模持久化数据十分实用。本文将介绍如何使用 Rancher 提供的 Local Path Provisioner,并将实际数据目录指定到本地路径 /app/k8s_data,实现自动化本地卷(Local PV)动态供给。


📦 一、准备环境

本文假设你已经部署好 KubeSphere 集群,具备 kubectl 权限。

确保所有节点都有 /app/k8s_data 目录,并授予合适权限:

sudo mkdir -p /app/k8s_data
sudo chmod 777 /app/k8s_data

🚀 二、安装 Local Path Provisioner

直接执行官方提供的部署命令:

kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml

该命令会创建:

  • 一个命名空间:local-path-storage

  • 一个 Deployment:local-path-provisioner

  • 一个默认 StorageClass:local-path

但默认挂载路径是 /opt/local-path-provisioner,接下来我们将其改为 /app/k8s_data


🛠 三、修改挂载路径到 /app/k8s_data

1️⃣ 编辑 ConfigMap:

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

找到 config.json 内容,将其修改为:

{
  "nodePathMap": [
    {
      "node": "DEFAULT_PATH_FOR_NON_LISTED_NODES",
      "paths": ["/app/k8s_data"]
    }
  ]
}

保存退出。

2️⃣ 重启 Provisioner Pod 使其生效:

kubectl -n local-path-storage delete pod -l app=local-path-provisioner

Kubernetes 会自动拉起新 Pod,并按新的路径配置工作。


✅ 四、验证效果

1️⃣ 创建 PVC:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-local-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 100Mi
  storageClassName: local-path

应用:

kubectl apply -f test-pvc.yaml

2️⃣ 查看 PV 挂载路径:

kubectl get pv -o wide
kubectl describe pv <自动生成的-pv-name>

输出应包含:

Type:       HostPath (bare host directory volume)
Path:       /app/k8s_data/pvc-xxxxx-xxxxx

3️⃣ 检查宿主机路径是否同步:

登录对应节点:

ls /app/k8s_data

如果有以 pvc- 开头的子目录,说明 PVC 创建成功并正确挂载到了本地指定目录。


📌 五、设置为默认 StorageClass(可选)

如果你希望将该存储类作为默认使用:

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

🧩 总结

通过 Rancher 提供的 Local Path Provisioner,我们可以轻松为 KubeSphere 添加一个支持自动动态供给的本地存储类。通过修改 ConfigMap 将默认路径改为 /app/k8s_data,就可以实现自定义的数据落盘位置,便于统一管理和备份。


📁 参考资料

如需部署示例 YAML、Pod 测试脚本,欢迎留言获取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值