因为工作的关系, 开始接触 Kubeflow. "实践出真知", 快速入门的最快的方式就是搭建环境,再跑个例子, 好在社区这块的资料很多. 从?Kubeflow Pipeline 入手, 一次可以接触所有组件.
直接选择?Kubeflow Pipeline 中的例子?cab_classification. 在 experiments 界面, 可以获得流水行运行的结果:
几点感受:
1. Pipeline 基于 Argo实现, 可以快速构建 DAG(Directed Acyclic Graph) 和 Step-based 流水线, 可以满足绝大多数需求.
2. 文档里发布 Kubeflow 前端的的方式采用 kube proxy port-forward 的方式, 使用 Istio Ingress + Gateway + VirtualService 可以更加灵活.
3. 报错, 严格的说是没有报错, 比如初始化用户命名空间是有格式校验的, 但是页面不会报错, 要查看组件日志才能发现. 考虑到大多数?Kubeflow 的用户是算法科学家的话, 这个体验确实很差.
4. 提供的例子重度依赖Google环境, 比如流水线构建物输入输出, 比如: 数据, Model, Tensorboard 依赖的 event data 都依赖 Google的对象存储服务. 虽然可以使用S3或者Minio做替换, 但是还有一些其他依赖问题, 比如这个例子会使用?Apache Beam?预处理和模型分析, 但是?Apache Beam?并不支持 S3.?S3 errors in Pipeline examples for reading training data and artifact storage. 类似的问题还有个别组件的前端仅支持?minio, s3, gc, http, https, 要知道本地部署的环境多是 localpath 或者 NFS.?
感觉离真正的产线部署还有很远的距离.