Как получить список томов RBD, разделенный по узлам?
kubectl -n d8-csi-ceph get po -l app=csi-node-rbd -o custom-columns=NAME:.metadata.name,NODE:.spec.nodeName --no-headers \
| awk '{print "echo "$2"; kubectl -n d8-csi-ceph exec "$1" -c node -- rbd showmapped"}' | bash
Какие версии Ceph кластеров поддерживаются
Официально сейчас поддерживаются версии >= 16.2.0. Из нашей практики текущая версия способна работать с кластерами версий >=14.2.0, но мы рекомендуем обновить версию Ceph.
Какие режимы работы томов поддерживаются
RBD поддерживает только ReadWriteOnce (RWO, доступ к тому в рамках одной ноды). CephFS поддерживает как ReadWriteOnce, так и ReadWriteMany (RWX, одновременный доступ к тому с нескольких нод)
Примеры разрешений (caps) для пользователей в Ceph
RBD
Для одного пула с названием rbd:
[client.name]
key = key
caps mgr = "profile rbd pool=rbd"
caps mon = "profile rbd"
caps osd = "profile rbd pool=rbd"
CephFS
В CephFS должен быть создан subvolumegroup csi или другой, если это настроено согласно Custom resources.
Создать новый subvolumegroup можно командой (на узле управления Ceph):
ceph fs subvolumegroup create <fs_name> <group_name>
Например, если fs myfs, subvolumegroup csi:
ceph fs subvolumegroup create myfs csi
Caps для CephFS с названием myfs:
[client.name]
key: key
caps: [mds] allow rwps fsname=myfs
caps: [mgr] allow rw
caps: [mon] allow r fsname=myfs
caps: [osd] allow rw tag cephfs data=myfs, allow rw tag cephfs metadata=myfs
CephFS + RBD
Пример пользователя с разрешениями в CephFS myfs и RBD пул rbd:
[client.name]
key = key
caps mds = "allow rwps fsname=myfs"
caps mgr = "allow rw,profile rbd pool=rbd"
caps mon = "allow r fsname=myfs,profile rbd"
caps osd = "allow rw tag cephfs metadata=myfs, allow rw tag cephfs data=myfs,profile rbd pool=rbd"