OpenShift Origin 和 Ceph 持久卷

cal*_*vix 0 ceph openshift-origin kubernetes

我已经从最新的 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
Run Code Online (Sandbox Code Playgroud)

我正在尝试通过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
Run Code Online (Sandbox Code Playgroud)

我已经安装了ceph在所有节点上 ceph-commonceph-fuse包(当然,我也在主节点上安装了它)。

PersistentVolume 按预期由persistentVolumeClaim 声明。

光伏配置文件:

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"
Run Code Online (Sandbox Code Playgroud)

我也可以在 cli 中通过 rbd 进行连接,没有任何问题。

任何人都可以帮助我吗?我认为 rbd 插件是通过 openshift 安装自动安装到 kubernetes 的。

cal*_*vix 5

所以我想通了。关于创建 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"
Run Code Online (Sandbox Code Playgroud)

ceph-secret.yml

apiVersion: v1
kind: Secret
metadata:
  # coresponds to secretRef in pv.yml
  name: ceph-secret
data:
  # base64 encoded ceph secret
  key: QVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxltZFE9PQ==
Run Code Online (Sandbox Code Playgroud)

然后执行

oc create -f pv.yml
oc create -f ceph-secret.yml
Run Code Online (Sandbox Code Playgroud)

还有错误消息:不受支持的卷类型令人困惑,因为即使支持 rbd 卷也会报告。错误导致丢失机密。

该问题已报告并证明将得到解决:https : //github.com/kubernetes/kubernetes/issues/18444

Edit2:有关挂载 ceph 持久卷的附加信息:您已在挂载前在 ceph 池中创建映像。Openshift(或 kubernetes)不会自己创建镜像。

Edit3:在使用它之前,您还必须手动 mkfs.ext4 此图像。