0

我有一个在 virtualbox Ubuntu vms 上运行的 3 节点 microk8s 集群。我正在尝试让 mayastor for openebs 与 PVC 一起使用。我已按照本指南中的步骤操作:

  1. https://mayastor.gitbook.io/introduction/quickstart/preparing-the-cluster
  2. https://mayastor.gitbook.io/introduction/quickstart/deploy-mayastor
  3. https://mayastor.gitbook.io/introduction/quickstart/configure-mayastor

第 3 步中的 MayastorPool 示例如下所示:

apiVersion: "openebs.io/v1alpha1"
kind: MayastorPool
metadata:
  name: pool-on-node1-n2
  namespace: mayastor
spec:
  node: node1
  disks: [ "/dev/nvme0n2" ]

我的 StorageClass 看起来像这样:

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

根据指南,所有检查似乎都很好,但是当我尝试根据此https://mayastor.gitbook.io/introduction/quickstart/deploy-a-test-application创建 PVC 并使用它时,测试应用程序 fio pod没有出现。当我用描述查看它时,我看到以下内容: $ kubectl describe pods fio -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

有什么想法可以让 mayastor 使用 microk8s 工作吗?很高兴发布更多信息。

4

1 回答 1

0

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

替换步骤: https ://mayastor.gitbook.io/introduction/quickstart/deploy-mayastor#csi-node-plugin

kubectl apply -f https://raw.githubusercontent.com/openebs/Mayastor/master/deploy/csi-daemonset.yaml

curl -fSs https://raw.githubusercontent.com/openebs/Mayastor/master/deploy/csi-daemonset.yaml | sed "s|/var/lib/kubelet|/var/snap/microk8s/common/var/lib/kubelet|g" - | kubectl apply -f -

所以将路径替换为 microk8s 安装特定路径。即使有符号链接,如果没有此更改,事情似乎也无法正常工作。

于 2021-06-21T21:12:14.340 回答