Я установил OpenShift Origin из последней установленной версии. (CentOS 7 - 3 мастера и 7 узлов)
[root@master-1 ~]# openshift version
openshift v1.1.0.1-1-g2c6ff4b
kubernetes v1.1.0-origin-1107-g4c8e6f4
etcd 2.1.2
Я пытаюсь создать постоянное хранилище CEPH через плагин rbd. У меня есть рабочий кластер Ceph, и я следовал официальному руководству по ceph из документации:
https://docs.openshift.org/latest/install_config/persistent_storage/persistent_storage_ceph_rbd.html
Я могу без проблем создать persistentVolume и persistentVolumeClaim, но когда Kubernetes пытается смонтировать том, он сообщает об ошибке:
FailedMount {kubelet node-4} Unable to mount volumes for pod "php55-rzat2_xyz": unsupported volume type
Pod FailedSync {kubelet node-4} Error syncing pod, skipping: unsupported volume type
Я установил цеф, ceph-common и ceph-предохранитель пакеты на всех узлах (и на мастерах, конечно, я тоже устанавливал).
persistentVolume запрашивается persistentVolumeClaim, как и ожидалось.
Файл конфигурации pv:
apiVersion: v1
kind: PersistentVolume
metadata:
name: "ceph-ssd-0000-11"
spec:
capacity:
storage: "1Gi"
accessModes:
- "ReadWriteOnce"
rbd:
monitors:
- "10.0.0.5:6789"
- "10.0.0.6:6789"
- "10.0.0.7:6789"
pool: ssdvolumes
image: ssd-shift-pv-0001
user: ssdvolumes
secretRef:
name: "QVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=="
fsType: ext4
readOnly: false
persistentVolumeReclaimPolicy: "Recycle"
Я также могу без проблем подключиться через rbd в cli.
Кто-нибудь может мне с этим помочь? Я думал, что плагин rbd автоматически устанавливается в кубернетах с установкой openshift.
Вот и разобрался. Официальная документация немного неясна о создании ceph pv. Вы должны создать еще один объект "секрет" с секретом ceph, а затем просто сослаться на него в конфигурации pv.
pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
name: "ceph-ssd-0000-06"
spec:
capacity:
storage: "1Gi"
accessModes:
- "ReadWriteOnce"
rbd:
monitors:
- "10.2.70.51:6789"
- "10.2.70.81:6789"
- "10.2.70.82:6789"
pool: ssdvolumes
image: ssd-shift-pv-0006
user: ssdvolumes
secretRef:
name: "ceph-secret"
fsType: ext4
readOnly: false
persistentVolumeReclaimPolicy: "Recycle"
ceph-secret.yml
apiVersion: v1
kind: Secret
metadata:
# coresponds to secretRef in pv.yml
name: ceph-secret
data:
# base64 encoded ceph secret
key: QVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxltZFE9PQ==
а затем выполнить
oc create -f pv.yml
oc create -f ceph-secret.yml
Также сообщение об ошибке: неподдерживаемый тип тома сбивает с толку, так как сообщается, даже если том rbd поддерживается. Ошибка из-за отсутствия секрета.
О проблеме сообщают и предположительно собираются решить: https://github.com/kubernetes/kubernetes/issues/18444
Edit2: Дополнительная информация о монтировании постоянного тома ceph: перед монтированием вы создали образ в пуле ceph. Openshift (или кубернеты) сами по себе не создают изображения.
Edit3: вы также должны вручную mkfs.ext4 это изображение перед его использованием.