发布于: Aug 26, 2022
Amazon SageMaker Operator 可以帮助数据科学家以及开发人员利用 Kubernetes 的接口来创建和管理 SageMaker 的任务,如机器学习的模型训练、超参优化、批量转换以及实时推理等。
Amazon SageMaker Operator 可以帮助数据科学家以及开发人员利用 Kubernetes 的接口来创建和管理 SageMaker 的任务,如机器学习的模型训练、超参优化、批量转换以及实时推理等。如图所示,SageMaker Operator 可以让开发与运维人员可以通过 kubectl 命令行或者 kubernetes api 接口调用的方式来管理和使用 SageMaker 服务,它就像翻译器一样,在 Kubernetes 平台与 Amazon Web Services SageMaker 服务之间搭建了一座桥梁,让那些已经很很熟悉 Kubenretes 的开发、运维人员在无需投入过多精力的情况下,即可快速地使用 SageMaker 服务。
SageMaker Operator 可以让那些已经很了解 Kubernetes 平台的开发人员以非常熟悉和友好的方式来使用 SageMaker 服务,它非常适用于以下一些场景。
- 项目团队已经非常熟悉了 Kubernetes 平台的接口和标准,由于项目需求,希望引进机器学习部分。由于人员数量有限,团队不希望再去单独维护一套机器学习平台,而是在充分利用已有的能力的基础上,适当引进第三方的工具和服务,快速地进行业务创新,降低学习和使用的成本,大幅度提升效率。
- 项目团队已在 Kubernetes 平台的基础上很好的实现了 Devops,很多的业务模块都已经做到了持续集成与持续发布。机器学习部分只是整个业务系统中的一个模块,团队希望能够能将机器学习模块与其它业务模块统一进行工程化的管理,最终实现业务流程的全自动化。
与其它第三方应用的 Kubernetes Operator 实现机制一样,SageMaker Operator 由 Kubernetes CRD 和 Controller 两部分组成。如图所示,在安装好 SageMaker Operator 之后,SageMaker Operator 会向 Kubernetes 平台新注册一些与SageMaker 服务相关 CRD,同时以 Pod 的方式在 Kubernetes Worker Node 上运行 SageMaker Operator Controller。当开发人员需要创建机器学习的任务时,首先需要在 yaml 文件中定义与 CRD 资源相关的关键配置参数,然后通过 kubectl 提交命令创建 CRD 资源,在 CRD 资源资源成功创建后,SageMaker Controller 可以从 Kubernetes API server 监听到与该 CRD 相关的信息,之后解析参数并调用 SageMaker 服务,完成机器学习任务的创建。
Operator 是 Kubernetes 中的一个重要概念,它可以让开发人员在 Kubernetes 的基础上进行高级的抽象和封装,从而可以更加容易地安装和管理复杂的应用。除了 SageMaker Operator,很多公司和开源机构都会按照 Kubernetes 的标准把封装自己的 Operator。Kubernetes Operator 概念相对抽象,技术实现细节也比较复杂,若想对它更深入的了解,我们首先需要理解 Kubernetes 资源创建的机制和流程,同时也需要理解 Kubernetes CRD 和 Controller 等一些重要的概念,不篇博客不会就 Kubernetes Operator 的技术细节做过多的展开,关于更多有关 Kubernetes Operator 的介绍,请参考以下链接。
Kubernetes
CRD: https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/
Kubernetes
Controller: https://kubernetes.io/docs/concepts/architecture/controller/
Kubernetes Operator: https://kubernetes.io/docs/concepts/extend-kubernetes/operator/
相关文章