V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cookgo
V2EX  ›  Kubernetes

Kubernetes 挂载 cephfs 二级路径问题

  •  
  •   cookgo · 2022-11-16 18:58:32 +08:00 · 1388 次点击
    这是一个创建于 520 天前的主题,其中的信息可能已经有所发展或是发生改变。

    遇到的问题

    • 尝试在 kubernetes 里创建 MySQL 使用 PV 挂载 cephfs 的二级路径作为数据存储位置,遇到了“路径不存在”的错误。
    • 在 MySQL 启动的部署的时候买,遇到了下文的错误
    MountVolume.SetUp failed for volume "mysql-pv" : CephFS: mount failed: mount failed: exit status 32 Mounting command: systemd-run Mounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/pods/87e91420-a3bb-4c9d-8dfa-50f20881645d/volumes/kubernetes.io~cephfs/mysql-pv --scope -- mount -t ceph -o <masked>,<masked> 10.2.0.151:6789:/mysql8 /var/lib/kubelet/pods/87e91420-a3bb-4c9d-8dfa-50f20881645d/volumes/kubernetes.io~cephfs/mysql-pv Output: Running scope as unit run-11819.scope. mount: 特殊设备 10.2.0.151:6789:/mysql8 不存在
    

    配置

    PersistentVolume

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: mysql-pv
    spec:
      capacity:
        storage: 100Gi
      cephfs:
        monitors:
          - 10.2.0.151:6789
        path: /mysql8
        user: admin
        secretRef:
          name: ceph-secret
        fsType: ext4
        readOnly: false
      accessModes:
        - ReadWriteOnce
      persistentVolumeReclaimPolicy: Delete
    
    
    • 这个 path 里的路径 /mysql8,我在 ceph 的 pool 里已经手动创建过了,路径因该没问题。但是看错误日志的 mount 指令,感觉指令拼装的不对。
    • ceph 的 key 用的是 admin 用户的,对 cephfs_data 拥有 RW 权限。

    疑问

    • 我按照 kubernetes 的文档,在 cephfs 的 path 一栏里配置了二级路径,PV 就没发正常挂载,但是如果用根路径,PV 可以正常挂载。这是为何呢?
    • kubernetes 挂载 cephfs 的默认 pool 是 cephfs_data 吗?

    参考的文档

    版本信息

    • 操作系统:centos7
    • kubernetes 版本: v1.22.12
    • ceph 版本: 15.2.17
    5 条回复    2022-11-19 17:08:19 +08:00
    vhwwls
        1
    vhwwls  
       2022-11-17 01:54:30 +08:00
    非 csi 方式使用 cephfs 需要预先创建好 cephfs 上对应的 path ,检查一下你的 cephfs 根目录下是否有 mysql8 这个目录
    cookgo
        2
    cookgo  
    OP
       2022-11-17 09:08:37 +08:00
    @vhwwls 已经手动创建了 mysql8 路径,但是我看日志打印的 mount -t ceph 错误,感觉是这个版本 kunernetes 版本的问题
    vhwwls
        3
    vhwwls  
       2022-11-17 10:30:12 +08:00
    @cookgo #2 你这个环境方便远程的吗,感觉说不清楚,我可以帮你远程向日葵看看
    cookgo
        4
    cookgo  
    OP
       2022-11-17 14:24:55 +08:00
    @vhwwls 问题“算是”解决了。
    我用的 KubeOperator 部署的 Kubernetes 集群,PersistentVolume 的 yaml 应该没问题,MySQL 的 StatefulSet 其实已经成功部署了,```CephFS: mount failed``` 这个错误我目前无视,手动使用 ceph-fuse mount 了 /mysql8,能看到里面初始化的 MySQL 文件,使用数据读写 MySQL 也正常。奇了怪了.........
    zizon
        5
    zizon  
       2022-11-19 17:08:19 +08:00
    @cookgo 那可能是之前 pod 失败 umount 失败了...所以重新拉起的时候 mount 失败...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1726 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:37 · PVG 00:37 · LAX 09:37 · JFK 12:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.