Kubernetes

OpenShift Origin 和 Ceph 持久卷

  • November 10, 2017

我已經從最新的 ansible 安裝中安裝了 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

我正在嘗試通過rbd 外掛創建 CEPH 持久儲存。我有工作的 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

我已經在所有節點上安裝了cephceph-commonceph-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"

我也可以在 cli 中通過 rbd 連接,沒有任何問題。

任何人都可以幫助我嗎?我認為 rbd 外掛是通過 openshift 安裝自動安裝到 kubernetes 的。

所以我想通了。官方文件對創建 ceph pv 有點不清楚。您必須使用 ceph secret 創建另一個對象“secret”,然後在 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(或 kubernetes)不會自己創建圖像。

Edit3:您還必須在使用之前手動 mkfs.ext4 這個圖像。

引用自:https://serverfault.com/questions/741791