我正在尝试使用storageClass将我的Kubernetescluster和一个Ceph集群一起设置,以便每个PVC在ceph集群内自动创建一个新的PV。

但这是行不通的。我已经尝试了很多,阅读了很多文档和教程,却不知道出了什么问题。

我为ceph管理员用户和另一个用户kube创建了2个 secret ,我使用此命令创建了这些 secret ,以授予对ceph osd池的访问权限。

创建池:sudo ceph osd pool create kube 128
创建用户:sudo ceph auth get-or-create client.kube mon 'allow r' \osd 'allow class-read object_prefix rbd_children, allow rwx pool=kube' \-o /etc/ceph/ceph.client.kube.keyring
之后,我导出了两个密钥,并使用以下命令将它们转换为Base64:sudo ceph auth get-key client.admin | base64sudo ceph auth get-key client.kube | base64我在secret.yaml中使用了这些值来创建kubernetes secret 。

apiVersion: v1
kind: Secret
type: "kubernetes.io/rbd"
metadata:
  name: ceph-secret
data:
   key: QVFCb3NxMVpiMVBITkJBQU5ucEEwOEZvM1JlWHBCNytvRmxIZmc9PQo=

另一个名为ceph-user-secret。

然后我创建了一个存储类来使用ceph集群
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: standard
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: kubernetes.io/rbd

parameters:
  monitors: publicIpofCephMon1:6789,publicIpofCephMon2:6789
  adminId: admin
  adminSecretName: ceph-secret
  pool: kube

  userId: kube
  userSecretName: ceph-kube-secret

  fsType: ext4
  imageFormat: "2"
  imageFeatures: "layering"

为了测试我的设置,我创建了一个PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-eng
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi

但是它陷入了挂起状态:
#kubectl get pvc
NAME      STATUS    VOLUME    CAPACITY   ACCESSMODES   STORAGECLASS   AGE
pvc-eng   Pending                                      standard       25m

另外,在ceph kube池内没有创建任何图像。
您对如何调试此问题有什么建议?

我试图在所有kubernetes节点上安装ceph-common ubuntu软件包。我将AT&T提供的镜像(包括ceph-common软件包)切换到了kube-controller-manager docker镜像。

https://github.com/att-comdev/dockerfiles/tree/master/kube-controller-manager

网络很好,我可以从Pod内部和每个kubernetes主机访问我的ceph集群。

如果有人有任何想法,我将感到高兴!

最佳答案

您必须使用annotation: ReadWriteOnce
如您所见https://kubernetes.io/docs/concepts/storage/persistent-volumes/(持久卷部分)RBD设备不支持ReadWriteMany模式。如果您需要通过多个容器从PV读取和写入数据,请选择其他卷插件(例如,CephFS)。

关于kubernetes - 具有动态配置的Kubernetes Ceph StorageClass,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46097435/

10-10 04:28