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 это изображение перед его использованием.

Другие вопросы по тегам