Kubernetes 如何安装带有microk8s的mayastor for openebs以用作PV/SC?

Kubernetes 如何安装带有microk8s的mayastor for openebs以用作PV/SC?,kubernetes,microk8s,openebs,Kubernetes,Microk8s,Openebs,我有一个3节点的microk8s集群运行在virtualbox Ubuntu虚拟机上。我正试图让mayastor的开场白与PVC配合使用。我遵循了本指南中的步骤: 步骤3中的MayastorPool示例如下所示: apiVersion: "openebs.io/v1alpha1" kind: MayastorPool metadata: name: pool-on-node1-n2 namespace: mayastor spec: node: node1

我有一个3节点的microk8s集群运行在virtualbox Ubuntu虚拟机上。我正试图让mayastor的开场白与PVC配合使用。我遵循了本指南中的步骤:

  • 步骤3中的MayastorPool示例如下所示:

    apiVersion: "openebs.io/v1alpha1"
    kind: MayastorPool
    metadata:
      name: pool-on-node1-n2
      namespace: mayastor
    spec:
      node: node1
      disks: [ "/dev/nvme0n2" ]
    
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: mayastor-3
    provisioner: io.openebs.csi-mayastor
    parameters:
      repl: '3'
      protocol: 'nvmf'
      ioTimeout: '60'
      local: 'true'
    volumeBindingMode: WaitForFirstConsumer
    
    我的StorageClass如下所示:

    apiVersion: "openebs.io/v1alpha1"
    kind: MayastorPool
    metadata:
      name: pool-on-node1-n2
      namespace: mayastor
    spec:
      node: node1
      disks: [ "/dev/nvme0n2" ]
    
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: mayastor-3
    provisioner: io.openebs.csi-mayastor
    parameters:
      repl: '3'
      protocol: 'nvmf'
      ioTimeout: '60'
      local: 'true'
    volumeBindingMode: WaitForFirstConsumer
    
    根据指南,所有的检查似乎都很好,但当我尝试创建一个PVC并按照这个方法使用它时,测试应用程序fio pod并没有出现。当我用descripe查看它时,我看到以下内容:
    $kubectl描述飞机场-n mayastor的吊舱

    Name:         fio
    Namespace:    mayastor
    Priority:     0
    Node:         node2/192.168.40.12
    Start Time:   Wed, 02 Jun 2021 22:56:03 +0000
    Labels:       <none>
    Annotations:  <none>
    Status:       Pending
    IP:           
    IPs:          <none>
    Containers:
      fio:
        Container ID:  
        Image:         nixery.dev/shell/fio
        Image ID:      
        Port:          <none>
        Host Port:     <none>
        Args:
          sleep
          1000000
        State:          Waiting
          Reason:       ContainerCreating
        Ready:          False
        Restart Count:  0
        Environment:    <none>
        Mounts:
          /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-l6cdf (ro)
          /volume from ms-volume (rw)
    Conditions:
      Type              Status
      Initialized       True 
      Ready             False 
      ContainersReady   False 
      PodScheduled      True 
    Volumes:
      ms-volume:
        Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
        ClaimName:  ms-volume-claim
        ReadOnly:   false
      kube-api-access-l6cdf:
        Type:                    Projected (a volume that contains injected data from multiple sources)
        TokenExpirationSeconds:  3607
        ConfigMapName:           kube-root-ca.crt
        ConfigMapOptional:       <nil>
        DownwardAPI:             true
    QoS Class:                   BestEffort
    Node-Selectors:              openebs.io/engine=mayastor
    Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
    Events:
      Type     Reason                  Age                  From                     Message
      ----     ------                  ----                 ----                     -------
      Normal   Scheduled               44m                  default-scheduler        Successfully assigned mayastor/fio to node2
      Normal   SuccessfulAttachVolume  44m                  attachdetach-controller  AttachVolume.Attach succeeded for volume "pvc-ec6ce101-fb3e-4a5a-8d61-1d228f8f8199"
      Warning  FailedMount             24m (x4 over 40m)    kubelet                  Unable to attach or mount volumes: unmounted volumes=[ms-volume], unattached volumes=[kube-api-access-l6cdf ms-volume]: timed out waiting for the condition
      Warning  FailedMount             13m (x23 over 44m)   kubelet                  MountVolume.SetUp failed for volume "pvc-ec6ce101-fb3e-4a5a-8d61-1d228f8f8199" : rpc error: code = Internal desc = Failed to find parent dir for mountpoint /var/snap/microk8s/common/var/lib/kubelet/pods/b1166af6-1ade-4a3a-9b1d-653151418695/volumes/kubernetes.io~csi/pvc-ec6ce101-fb3e-4a5a-8d61-1d228f8f8199/mount, volume ec6ce101-fb3e-4a5a-8d61-1d228f8f8199
      Warning  FailedMount             4m3s (x13 over 42m)  kubelet                  Unable to attach or mount volumes: unmounted volumes=[ms-volume], unattached volumes=[ms-volume kube-api-access-l6cdf]: timed out waiting for the condition
    
    名称:fio
    名称空间:mayastor
    优先级:0
    节点:node2/192.168.40.12
    开始时间:2021年6月2日星期三22:56:03+0000
    标签:
    注释:
    状态:待定
    知识产权:
    IPs:
    容器:
    fio:
    容器ID:
    图片:nixery.dev/shell/fio
    图像ID:
    端口:
    主机端口:
    Args:
    睡觉
    1000000
    国家:等待
    原因:集装箱制造
    就绪:错误
    重新启动计数:0
    环境:
    挂载:
    /来自kube-api-access-l6cdf(ro)的var/run/secrets/kubernetes.io/serviceCount
    /来自ms卷的卷(rw)
    条件:
    类型状态
    初始化为True
    准备错误
    集装箱准备好了吗
    播客预定为真
    卷数:
    ms卷:
    类型:PersistentVolumeClaim(对同一命名空间中PersistentVolumeClaim的引用)
    索赔名称:ms批量索赔
    只读:false
    kube-api-access-l6cdf:
    类型:投影(包含来自多个源的注入数据的卷)
    令牌过期秒数:3607
    ConfigMapName:kube-root-ca.crt
    配置映射可选:
    向下API:正确
    QoS等级:最佳努力
    节点选择器:openebs.io/engine=mayastor
    容差:node.kubernetes.io/未就绪:NoExecute op=存在300秒
    node.kubernetes.io/unreachable:NoExecute op=存在300秒
    活动:
    从消息中键入原因年龄
    ----     ------                  ----                 ----                     -------
    正常调度的44m默认调度程序已成功将mayastor/fio分配给节点2
    正常成功附加卷44m附加附加附加控制器附加卷。附加卷“pvc-ec6ce101-fb3e-4a5a-8d61-1d228f8f8199”成功
    警告失败装载24m(x4/40m)kubelet无法连接或装载卷:未安装的卷=[ms卷],未连接的卷=[kube-api-access-l6cdf ms卷]:等待条件时超时
    警告失败安装13m(x23超过44m)kubelet安装卷。卷“pvc-ec6ce101-fb3e-4a5a-8d61-1d228f8f8199”的安装失败:rpc错误:code=Internal desc=找不到挂载点/var/snap/microk8s/common/var/lib/kubelet/pods/b1166af6-1ade-4a3a-9b1d-653151418695/volumes/kubernetes.io的父目录/csi/pvc-ec6ce101-fb3e-4a5a-8d61-1d228f8f8199/挂载,卷ec6ce101-fb3e-4a5a-8d61-1d228f8199
    警告失败装载4m3s(x13超过42m)kubelet无法连接或装载卷:未安装的卷=[ms卷],未连接的卷=[ms卷kube-api-access-l6cdf]:等待条件时超时
    

    有什么想法可以让mayastor使用microk8s去哪里看或者做什么?很高兴发布更多信息。

    感谢Kiran Mova的评论和openebs slack频道的Niladri:

    替换步骤:


    因此,将路径替换为microk8s安装特定路径。即使有一个符号链接,如果不进行此更改,事情似乎也不会正常进行。

    您如何在集群上创建可供PVC使用的持久卷?您是否使用了CSI驱动程序路径的正确位置,以包括
    /var/snap/microk8s/common/var/lib/kubelet/plugins/
    @KiranMova microk8s似乎取得了成功来自/var/lib/kubelet->/var/snap/microk8s/common/var/lib/kubelet的simlink。我可以看到插件目录中有一个mayastor.openebs.io目录,其中有一个csi.sock。@ssc327我正在使用MayastorPool和StorageClass,如中所述-我将把它们添加到上述问题的描述中。