You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microk8s单节点集群使用Longhorn存储时Pod无法自动挂载PVC求助

解决方案

根因说明

该问题是Longhorn默认适配标准Kubernetes的kubelet路径/var/lib/kubelet,但Microk8s作为Snap打包的发行版,将kubelet工作路径修改为/var/snap/microk8s/common/var/lib/kubelet,导致Longhorn CSI驱动无法识别该路径,不会自动创建挂载所需的目录。

前置检查

执行microk8s status确认集群已开启dns、storage基础插件,且Longhorn所有系统Pod均处于Running状态。

配置修改步骤

  1. 修改Longhorn驱动部署器的环境变量
    执行以下命令编辑Longhorn的部署配置:

    kubectl edit deployment longhorn-driver-deployer -n longhorn-system
    

    在配置的spec.template.spec.containers[0].env列表中新增如下参数:

    - name: KUBELET_ROOT_DIR
      value: /var/snap/microk8s/common/var/lib/kubelet
    

    保存退出后配置会自动触发更新。

  2. 重启CSI相关组件使配置生效

    kubectl rollout restart deployment longhorn-driver-deployer -n longhorn-system
    kubectl rollout restart daemonset longhorn-csi-plugin -n longhorn-system
    

    等待所有重启的Pod进入Running状态即可。

  3. 功能验证
    重新安装需要持久化存储的应用,PVC绑定后Longhorn会自动创建对应挂载目录,Pod可正常启动,服务器重启后配置也不会失效。

可选补充配置

如果后续仍出现文件系统权限相关的挂载报错,可在对应应用的Deployment/StatefulSet配置中添加securityContext.fsGroupChangePolicy: "OnRootMismatch"参数,或在Longhorn默认StorageClass的参数中添加fsType: ext4,减少权限适配问题。


内容的提问来源于stack exchange,提问作者wwmwabini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:06:04