3、创建你的第一个Notebook:从Dashboard启动、选择镜像与资源规格、连接JupyterLab
说实话,第一次接触Kubeflow的人,最容易卡住的地方就是——怎么把Notebook跑起来。
界面看着挺花哨,按钮也不少。但核心逻辑其实很简单:选个镜像、定好资源、点一下启动。我刚开始带团队的时候,有个同事对着Dashboard看了十分钟,问我:“这玩意儿跟Jupyter Notebook有啥区别?”
嗯,区别大了去了。今天咱们就把这第一步走通。
3.1 从Dashboard启动Notebook
登录Kubeflow Dashboard之后,你会看到左侧导航栏。找到Notebooks这个入口,点进去。
页面会显示你当前命名空间下已有的Notebook实例。如果是第一次进来,列表应该是空的。别慌,点右上角的“+ New Notebook”按钮。
点击创建后,会弹出一个表单。这里需要填三个东西:
- Name:给你的Notebook起个名字。建议用
项目名-用途-日期的格式,比如mlops-demo-v1-202501。 - Namespace:一般默认就好,除非你有特殊的多租户需求。
- Workspace Volume:这里可以挂载一个已有的PVC,或者让系统自动创建一个。我个人建议选自动创建,省事。
3.2 选择镜像:别瞎选,看需求
镜像选择这块,坑最多。Kubeflow默认提供了几个镜像:
| 镜像名称 | 适用场景 | 我的评价 |
|---|---|---|
| Standard Jupyter | 纯Python开发,不需要额外库 | 够用,但太素了 |
| TensorFlow 2.x | 深度学习、模型训练 | 我项目里用得最多 |
| PyTorch 1.x | PyTorch用户首选 | 注意CUDA版本匹配 |
| R Studio | 数据分析、统计建模 | R语言用户专用 |
| Custom Image | 自建镜像,灵活度最高 | 推荐有经验的团队使用 |
怎么选?我一般遵循这个原则:
- 如果只是写写SQL、做做数据探索,Standard Jupyter就够了。
- 如果要跑模型训练,直接上TensorFlow或PyTorch镜像,省得自己装依赖。
- 如果团队有标准化镜像仓库,用Custom Image最稳妥。
3.3 配置资源规格:别贪心,也别太小气
资源规格这块,很多人容易走极端。要么给得太多,集群资源浪费;要么给得太少,Notebook跑个数据加载都卡死。
Kubeflow默认提供了几个规格:
- Small (1 CPU, 2GB RAM):适合轻量级数据探索、写文档。
- Medium (2 CPU, 4GB RAM):我个人的日常配置,大部分场景够用。
- Large (4 CPU, 8GB RAM):跑中等规模的数据处理或模型训练。
- Custom:手动指定CPU、内存、GPU。
我的建议是:
- 刚开始用Medium起步,跑起来之后看资源监控,再决定要不要升级。
- 如果需要GPU,记得勾选“Add GPU”选项。注意,GPU不是免费的,集群管理员一般会做配额限制。
- 别一上来就选Large + GPU,除非你确定你的代码能充分利用这些资源。
3.4 连接JupyterLab:终于可以写代码了
配置完成后,点击“Launch”。系统会开始创建Pod,这个过程大概需要30秒到2分钟不等,取决于镜像大小和集群负载。
创建完成后,状态会变成“Running”。这时候点击“Connect”按钮,浏览器会打开一个新的标签页——JupyterLab界面。
嗯,到这里,你的第一个Kubeflow Notebook就跑起来了。
第一次连接时,你可能会看到JupyterLab的经典界面:左侧是文件浏览器,右侧是代码编辑区。你可以:
- 新建一个Python 3 Notebook
- 打开终端执行命令
- 上传本地文件到工作区
试试在Notebook里跑一行代码:
print("Hello, Kubeflow!")
如果能看到输出,恭喜你——你已经成功创建并连接了你的第一个Kubeflow Notebook。
!python --version 和 !pip list,确认环境符合预期。省得写到一半发现缺包,那才叫尴尬。
3.5 本章核心逻辑图
下面这张图帮你梳理了整个流程:
说白了,整个过程就是:登录 → 创建 → 选镜像 → 配资源 → 启动 → 连接 → 开干。每一步都有讲究,但别被吓到。多试几次,你就能找到最适合自己的配置组合。