美文网首页
Windows WSL 2 挂载 k8s local PV的解决

Windows WSL 2 挂载 k8s local PV的解决

作者: Charles_linzc | 来源:发表于2021-06-30 22:41 被阅读0次

    本地使用docker desktop启动k8s, 发现pod挂在local pv提示错误:

    Warning  FailedMount  12s   kubelet            MountVolume.NewMounter 
    initialization failed for volume "kms-logs-pv" : path "mnt/d/data/kms/kms-logs" 
    does not exist
    
    

    这是k8s 在windows WSL 2 环境下找不到相应的路径。在docker的问题群里有一个workround, 使用/run/desktop/mnt/host/d/data/kms/kms-logs代替原来的路径。以下是对应的PV:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: kms-logs-pv
    spec:
      capacity:
        storage: 2Gi
      # volumeMode field requires BlockVolume Alpha feature gate to be enabled.
      volumeMode: Filesystem
      accessModes:
      - ReadWriteMany
      persistentVolumeReclaimPolicy: Delete
      local:
        path: /run/desktop/mnt/host/d/data/kms/kms-logs
      storageClassName: logs-storage
      nodeAffinity:
        required:
          nodeSelectorTerms:
          - matchExpressions:
            - key: kubernetes.io/hostname
              operator: In
              values:
              - docker-desktop
    

    PV 对应的 PVC:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: kmslogsclaim
    spec:
      accessModes:
        - ReadWriteMany
      volumeMode: Filesystem
      resources:
        requests:
          storage: 2Gi
      storageClassName: logs-storage
    

    对应的deployment:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: kms
      labels:
        app: kms-app
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: kms-app
      template:
        metadata:
          labels:
            app: kms-app
            name: openvidu-kms
        spec:
          terminationGracePeriodSeconds: 10    #当删除Pod时,等待时间
          containers:
            - name: openvidu-kms
              image: kurento/kurento-media-server:6.15.0
              volumeMounts:
                - mountPath: /opt/openvidu/kms-crashes
                  name: crashesstore
                - mountPath: /opt/openvidu/recordings
                  name: recordingstore
                - mountPath: /opt/openvidu/kurento-logs
                  name: logsstore
          dnsPolicy: "ClusterFirst"
          volumes:
          - name: crashesstore
            persistentVolumeClaim:
              claimName: kmscrashesclaim
          - name: recordingstore
            persistentVolumeClaim:
              claimName: kmsrecordingclaim
          - name: logsstore
            persistentVolumeClaim:
              claimName: kmslogsclaim
    

    参考连接:
    docker issues1
    # Persistent volumes get lost in Kubernetes on Docker Desktop for Windows/WSL2#7023

    相关文章

      网友评论

          本文标题:Windows WSL 2 挂载 k8s local PV的解决

          本文链接:https://www.haomeiwen.com/subject/hfsdultx.html