使用kubeflow1.7过程中踩的坑

kubeflow 错误集合

继上一篇在单机上搭建了k8s、kubeflow之后又遇到了一系列问题,现将踩的坑一一记录下来,帮助需要的人。后续会持续更新在使用kubflow以及k8s过程中遇到的问题以及解决方案。

  1. 在kubeflow ui界面创建notebook的时候,出现Could not find CSRF cookie XSRF-TOKEN错误

    • 查找相关日志 kubectl logs <name> <name-spaces>

    • 错误信息Could not find CSRF cookie XSRF-TOKEN in the request.

    • 原因分析通过访问 Kubeflow UI是通过 http(而不是 https),因此需要在 Jupyter Web 应用服务中将环境变量设置APP_SECURE_COOKIES=false

    • 解决办法:kubectl edit deployments.apps -n kubeflow jupyter-web-app-deployment,修改之后如图所示。
      在这里插入图片描述

  2. 在kubeflow ui界面创建notebook时,出现kubeflow FailedScheduling didn't find available persistent volumes to bind.错误

    • kubectl describe pod <name> <name-spaces>

    • 错误信息kubeflow FailedScheduling didn't find available persistent volumes to bind.

    • 原因分析:k8s没有动态的创建存储,没有多余的pv可以绑定

    • 解决办法: 通过yaml文件手动创建一个pv,然后申请的pvc会自动地跟pv进行绑定。yaml文件就跟上一篇中pv创建的yaml文件类似

      然后执行 kubectl apply -f *.yaml

    • 思考的问题:为什么k8s不能执行动态存储?答:跟kind创建的k8s容器有关,cluster中无法访问宿主机上的文件,也没有权限去创建。感兴趣的可以了解一下pv创建的全过程

      apiVersion: v1
      kind: PersistentVolume
      metadata:
        namespace: kubeflow-user-example-com
        name: jupyter-storage
        labels:
          type: local
      spec:
        storageClassName: local-storage
        capacity:
          storage: 10Gi
        accessModes:
          - ReadWriteOnce
        hostPath:
          path: "/data/k8s/jupyter-storage"
      
  3. 创建完成之后又出现如图所示错误
    在这里插入图片描述

    • 日志命令 kubectl logs test-0 -n kubeflow-user-example-com

    • 错误信息PermissionError: [Errno 13] Permission denied: '/home/jovyan/.local'

    • 问题分析:

      • 猜测内置用户jovyan没有权限执行相关操作。
      • 估计和kind创建k8s容器有关,kind创建的k8s,在cluster中是无法访问宿主机上的文件系统。
      • 后期解决方案:在创建k8s时,将文件目录进行映射。
    • 解决办法

      • 对于用kind创建k8s的用户,短暂的解决办法是不绑定持久化目录
      • 后期等目录确定之后,在创建k8s的时候进行目录映射,详细的操作方式见链接
      • 对于正常搭建k8s的用户,可能需要将绑定的pv赋予777权限。如:chmod -R 777 /data/k8s/jupyter-storage
  4. 在kubeflow界面上出现error 1049: unknown database 'mlpipeline'

    • 日志命令 kubectl logs test-0 -n kubeflow-user-example-com
    • 错误信息摘要error 1049: unknown database 'mlpipeline'
    • 问题分析:
      • 一开始查找相关问题的解决方案,以为是数据库无法访问,但进行了相关尝试,并不见效
      • 后来才发现是因为有一个podml-pipeline-67c777bf68-p2bt7一开始拉去错误,后来重新去拉的,忘记将他删除重启了,导致mlpipeline一直找不到
    • 解决办法
      • 删除对应的pod,重新创建kubectl delete pod ml-pipeline-67c777bf68-p2bt7 -nkubeflow
  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值