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

求助:将Kubernetes卷挂载到Ceph RBD存储时出现FailedMount错误

排查Kubernetes挂载Ceph RBD FailedMount问题

错误现象

挂载卷时触发FailedMount警告,具体报错:

Unable to attach or mount volumes: unmounted volumes=[data], unattached volumes=[data kube-api-access-mxlkm]: timed out waiting for the condition

排查与修复步骤

1. 修正StorageClass配置中的转义符问题

你的StorageClass配置里imageFormat: \"2\"存在多余转义符,会导致参数解析失败,修改为正确格式后重新创建:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: dynamic
provisioner:  kubernetes.io/rbd
parameters:
  monitors: 192.168.122.82:6789,192.168.122.238:6789,192.168.122.124:6789 
  adminId: admin 
  adminSecretName: ceph-admin-secret 
  adminSecretNamespace: kube-system 
  pool: k8s 
  userId: kube  
  userSecretName: ceph-user-secret
  imageFormat: "2"

2. 验证Ceph相关Secret的有效性

  • 检查kube-system命名空间下的管理员Secret:
    kubectl get secret ceph-admin-secret -n kube-system
    
  • 检查当前命名空间下的用户Secret:
    kubectl get secret ceph-user-secret
    
  • 确保Secret中的值是Ceph用户key的base64编码,可通过以下命令获取原始key后编码:
    # 获取admin用户key并编码
    ceph auth get-key admin | base64
    # 获取kube用户key并编码
    ceph auth get-key client.kube | base64
    

3. 安装Worker节点的Ceph依赖

所有Worker节点(包括worker1)必须安装ceph-common包,否则无法识别RBD设备:

# Debian/Ubuntu系统
apt-get install -y ceph-common
# RHEL/CentOS系统
yum install -y ceph-common

4. 验证Ceph集群连接与权限

  • 在Worker节点测试Ceph集群连通性:
    rbd --mon-host 192.168.122.82:6789,192.168.122.238:6789,192.168.122.124:6789 -p k8s ls
    
  • 检查Ceph用户权限:
    ceph auth get client.admin
    ceph auth get client.kube
    
    确认输出中包含mon 'allow *'和osd 'allow rwx pool=k8s'类的权限规则。

5. 检查PV/PVC状态

查看PVC对应的PV是否成功绑定:

kubectl get pv,pvc

若PV未创建,检查kube-controller-manager日志,排查动态卷供给失败原因。

6. 查看Kubelet日志获取细节

在worker1节点查看kubelet实时日志,定位挂载失败的具体诱因:

journalctl -u kubelet -f

日志中通常会输出更具体的错误,比如集群连接失败、权限不足、设备丢失等信息。

内容的提问来源于stack exchange,提问作者dexter-cop

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:40:22