OpenShift Origin и Ceph постоянный том
Я установил 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, ceph-common и ceph-fuse на все узлы (и, конечно, я также установил их на мастера).
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"
Я также могу подключиться через RGB в Cli без каких-либо проблем.
Кто-нибудь может мне помочь с этим? Я думал, что плагин rbd автоматически устанавливается в kubernetes с установкой openshift.
1 ответ
Так что я понял это. Официальная документация немного неясно о создании 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"
цеф-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 (или kubernetes) не создаст изображение самостоятельно.
Edit3: вы также должны вручную mkfs.ext4 это изображение перед его использованием.