Kubernetes Rook:等待卷连接/装载pod的超时已过期

Kubernetes Rook:等待卷连接/装载pod的超时已过期,kubernetes,rook-storage,Kubernetes,Rook Storage,k8s版本:v1.9 env:VirtualBox 操作系统:Coreos 它是1节点Kubernetes群集 我遵循以下步骤: 跟踪并更新了kubelet Environment=“RKT_OPTS=--volume modprobe,kind=host,source=/usr/sbin/modprobe\ --装载卷=modprobe,目标=/usr/sbin/modprobe\ --卷库模块,种类=主机,源=/lib/modules\ --装载卷=lib模块,目标=/lib/modules

k8s版本:v1.9
env:VirtualBox
操作系统:Coreos

它是1节点Kubernetes群集 我遵循以下步骤:

  • 跟踪并更新了kubelet

    Environment=“RKT_OPTS=--volume modprobe,kind=host,source=/usr/sbin/modprobe\
    --装载卷=modprobe,目标=/usr/sbin/modprobe\
    --卷库模块,种类=主机,源=/lib/modules\
    --装载卷=lib模块,目标=/lib/modules\
    --uuid文件保存=/var/run/kubelet pod.uuid“

  • 已安装的ceph实用程序

    rbd-v
    ceph版本10.2.2(45107e21c568dd033c2f0a3107dec8f0b0e58374)

  • 所有rook pod都在工作,但MySQL pod失败,错误为“等待pod的卷连接/装载超时”

    ➜  kubectl get pod -n rook-system
    NAME                             READY     STATUS    RESTARTS   AGE
    rook-agent-rqw6j                 1/1       Running   0          21m
    rook-operator-5457d48c94-bhh2z   1/1       Running   0          22m
    ➜   kubectl get pod -n rook
    NAME                             READY     STATUS    RESTARTS   AGE
    rook-api-848df956bf-fhmg2        1/1       Running   0          20m
    rook-ceph-mgr0-cfccfd6b8-8brxz   1/1       Running   0          20m
    rook-ceph-mon0-xdd77             1/1       Running   0          21m
    rook-ceph-mon1-gntgh             1/1       Running   0          20m
    rook-ceph-mon2-srmg8             1/1       Running   0          20m
    rook-ceph-osd-84wmn              1/1       Running   0          20m
    ➜   kubectl get pv
    NAME                                       CAPACITY   ACCESSMODES   RECLAIMPOLICY   STATUS    CLAIM                    STORAGECLASS   REASON    AGE
    pvc-6a4c5c2a-127d-11e8-a846-080027b424ef   20Gi       RWO           Delete          Bound     default/mysql-pv-claim   rook-block               15m
    ➜  kubectl get pvc
    NAME             STATUS    VOLUME                                     CAPACITY   ACCESSMODES   STORAGECLASS   AGE
    mysql-pv-claim   Bound     pvc-6a4c5c2a-127d-11e8-a846-080027b424ef   20Gi       RWO           rook-block     15m
    kubectl get pods
    NAME                               READY     STATUS              RESTARTS   AGE
    wordpress-mysql-557ffc4f69-8zxsq   0/1       ContainerCreating   0          16m
    
    
    Error when I describe pod : FailedMount Unable to mount volumes for pod "wordpress-mysql-557ffc4f69-8zxsq_default(6a932df1-127d-11e8-a846-080027b424ef)": timeout expired waiting for volumes to attach/mount for pod "default"/"wordpress-mysql-557ffc4f69-8zxsq". list of unattached/unmounted volumes=[mysql-persistent-storage]
    
    还向rook-operator.yaml添加了以下选项

    - name: FLEXVOLUME_DIR_PATH
      value: "/var/lib/kubelet/volumeplugins"
    

    你能帮个忙吗?如果你需要更多的细节,请告诉我。我检查了类似的问题,但解决方案不起作用。

    您是否使用cephfs或rbd卷作为Ceph的后端?以下是一些需要检查的内容:

  • 请确认您的Pod可以很好地与ceph群集通信,这似乎是您尝试使用的ceph卷的通信问题

  • 检查您的Ceph卷插件是否设置正确

  • #kubectl get pv
    的状态如何

  • 看看您的持久卷和声明

  • 您也可以尝试Root.io工具,它们与Ceph对象存储有很好的集成


  • 你看过kubelet日志了吗?看过。它给出了“没有匹配的卷插件”错误。我本来可以粘贴日志的,但几个小时前我把它销毁了。我将通过重新创建相同的错误来放置日志。