我已经从最新的 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
我已经在所有节点上安装了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"
我也可以在 cli 中通过 rbd 连接,没有任何问题。
任何人都可以帮助我吗?我认为 rbd 插件是通过 openshift 安装自动安装到 kubernetes 的。
所以我想通了。官方文档对创建 ceph pv 有点不清楚。您必须使用 ceph secret 创建另一个对象“secret”,然后在 pv 配置中引用它。
pv.yml
ceph-secret.yml
然后执行
还有错误消息:不支持的卷类型令人困惑,因为即使支持 rbd 卷也会报告。错误导致丢失机密。
该问题已报告并且可证明将得到解决: https ://github.com/kubernetes/kubernetes/issues/18444
Edit2:有关挂载 ceph 持久卷的附加信息:您已在挂载前在 ceph 池中创建映像。Openshift(或 kubernetes)不会自己创建图像。
Edit3:您还必须在使用之前手动 mkfs.ext4 这个图像。