type
status
date
slug
summary
tags
category
icon
password
从零了解MLOps和KubeFlow部署,以实现机器学习算法应用工作流闭环。目前项目上特征工程规模量大,处理形式并不复杂,依赖低效“人工”实现“智能”;而其他部门已有成熟的K8S用于生产,直接利用云上部署开发存在限制,故尝试本地化部署测试KubeFlow的工作流及评估迁移难度。
起初,尝试DeployKF-0.1.3,但根据文档部署后不懂如何完整搭建,后利用MiniKube更加“傻瓜式”地完成了服务启动。
如果你也是网络架构的小白,欢迎体验!
📝 MLOps入门介绍📝 先了解一下KubeFlow简介框架核心组件与工作流📝 本地化部署❓DeployKF尝试,失败告终Local-Path-Provisioner部署部署遇到的问题✅ K8S & KubeFlow本地化部署1. 环境配置:wsl2-Ubuntu 安装2. 环境配置:Docker Desktop3. MiniKube的win部署使用minikube创建KubeFlow服务一些示例一些问题🤗 总结归纳步骤总览:注意事项和调整:📎 参考文章
📝 MLOps入门介绍
通过胡老师的视频资料,快速理解MLOps的使用。视频回放(社区B站主页)
📝 先了解一下KubeFlow
简介
Kubeflow 项目致力于使 Kubernetes 上的机器学习 (ML) 工作流程的部署变得简单、可移植且可扩展。目标是提供一种简单的方法,将最佳的 ML 开源系统部署到不同的基础设施。无论您在哪里运行 Kubernetes,都应该能够运行 Kubeflow。
框架
基于Kubernetes构建,使用配置UI指定工作流所需的ML组件工具,并将工作流部署到公有云、私有云或混合云进行实验和生产。
核心组件与工作流
- Central Dashboard, UI可视化前端;
- Kubeflow Notebooks, 集群内运行基于web的开发环境,对Jupyter、VS Code等提供本机支持,可直接在集群中创建容器;
- Kubeflow Pipelines, 基于Docker;
- Katib, 用于AutoML,支持多个框架(TensorFlow, MXNet, PyTorch, XGBoost等 ),支持多个AutoML算法;
- Training Operators, 多模型框架训练器;包含Scheduling;
- Multi-Tenancy, 多用户
📝 本地化部署
系统环境:Windows 11 家庭中文版 22H2 x64
硬件环境:Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz 2.30 GHz; 16GB/256GB
❓DeployKF尝试,失败告终
若报错提示wsl内核进程被占用,可先执行 wsl —shutdown 终止内核后(这个过程将关闭docker)重试
Local-Path-Provisioner部署
部署遇到的问题
- wsl中执行kubectl抛出异常;此时win-minikube执行正常
- 与docker服务的通信异常
- 在docker desktop中设置-k8s设置重启了服务【有效解决】
- wsl中和powershell中执行相同语句,显示不同的pods情况。前者是wsl中docker创建,后者在windows中创建
✅ K8S & KubeFlow本地化部署
1. 环境配置:wsl2-Ubuntu 安装
官方安装步骤:
关键代码:
了解Linux基础配置和知识
2. 环境配置:Docker Desktop
3. MiniKube的win部署
- k8s pods结果
- 红框为minikube基础服务
- 末尾两个为minikube dashboard服务
基本操作语句查表
多开powershell,minikube启动的app需要单独一个窗口建立端口代理或tunnel
使用minikube创建KubeFlow服务
待所有节点构建完成,STATUS=Running后即服务启动完成。
一些示例
- addons list
- 拉取kubeflow服务,kubeflow创建后节点情况
- 在k8s的dashboard可以查看到namespace的状态
- 前端界面(账户:[email protected] 密码:12341234)
一些问题
- 运行一段时间后,kubectl(win)就无法访问
问题:资源不足的问题,minikube 2核 4G 不足以启动kubeflow
🤗 总结归纳
当在Windows环境下使用MiniKube部署KubeFlow时,需要考虑一些特定的步骤和配置。以下是一个总结归纳,帮助你成功完成这个任务:
步骤总览:
- 安装必要的软件:
- 安装WSL或者Docker:MiniKube 可使用Docker作为虚拟化驱动,其他请详见。
- 安装kubectl:用于与Kubernetes集群进行交互。
- 安装Minikube:用于在本地启动Kubernetes集群。
- 启动MiniKube:
- 在命令行中执行
minikube start
。 - 可以使用
-driver
选项指定虚拟化驱动,如-driver=docker
。
- 配置kubectl:
- MiniKube启动后,设置kubectl的上下文,以便与MiniKube集群通信。
- 安装KubeFlow:
- 使用KFDef配置文件或者KFctl工具,按照KubeFlow官方文档指导进行安装。
- 在Windows环境下,注意一些路径和文件格式可能需要进行调整。
- 验证KubeFlow安装:
- 使用kubectl命令或者KubeFlow提供的工具验证KubeFlow的各个组件是否正确运行。
注意事项和调整:
- 文件路径格式:
- 在Windows环境下,路径格式与Linux可能不同,需要注意文件路径的斜杠方向。确保配置文件中的路径是正确的。
- 网络配置:
- 确保MiniKube能够访问所需的镜像仓库,可以配置代理或者设置合适的网络环境。
- 资源配置:
- 需要根据实际资源情况调整KubeFlow的配置文件,特别是Pod的资源请求和限制。
- Windows上的权限问题:
- 有时Windows上可能会有权限问题,确保你在运行命令时有足够的权限,或者使用管理员权限运行命令行。
- 查看日志和状态:
- 如果遇到问题,查看MiniKube和KubeFlow的日志文件,以便更好地定位和解决问题。
📎 参考文章
- 2022乘风破浪的DevOps系列直播
- PPT资料下载:链接:https://pan.baidu.com/s/1D8DB5zFMOxihVeQcgjth1g 密码:7w49
- 视频回放(社区B站主页):https://space.bilibili.com/370989874
需要补充的是,博客中存在部分文字内容由人工智能语言模型生成的,因此可能与其他来源的内容相似。相关引用已注明出处,Noel 尊重并感谢每位创作者。若有不恰当之处,欢迎联系我与我交流,我将在24h内作出修正。本博客的目的是为了提供有用的信息和见解。感谢您阅读本博客,文章涉及代码部分属Noel Du创作,转载请注明出处。 2024 Noel Du. All rights reserved.
- 作者:NoelDu
- 链接:http://github.com/NoelDu/article/b7812a5c-54f1-476f-99fc-7798e8e4302d
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。