【发布时间】:2019-02-27 18:46:37
【问题描述】:
我正在探索 Argo 以协调处理大数据。我希望通过 REST 调用启动一个工作流,该工作流将一个大型数据集划分给具有所需资源进行处理的多台机器。从架构的角度来看,我将如何实现这一点?是否有我可以使用的 REST api 或一些 Node.js 库?
【问题讨论】:
标签: kubernetes workflow argoproj argo-workflows
我正在探索 Argo 以协调处理大数据。我希望通过 REST 调用启动一个工作流,该工作流将一个大型数据集划分给具有所需资源进行处理的多台机器。从架构的角度来看,我将如何实现这一点?是否有我可以使用的 REST api 或一些 Node.js 库?
【问题讨论】:
标签: kubernetes workflow argoproj argo-workflows
Argo 2.5 introduces its own API.
目前有官方支持的Golang 和Java 客户端。还有一个社区支持的Python 客户端。更新将在此处提供:https://github.com/argoproj-labs/argo-client-gen
Argo 提供 Swagger API 规范,因此为其他语言生成客户端应该相当容易。
【讨论】:
据阿尔戈documentation:
Argo 被实现为一个 kubernetes 控制器和工作流Custom Resource。 Argo 本身不运行 API 服务器,并且对于所有 CRD,它通过引入新的 API 组/版本 (argorproj.io/v1alpha1) 来扩展 Kubernetes API 服务器和种类(工作流程)。当 CRD 在集群中注册时,可以通过在 Kubernetes API 服务器中公开新的端点来访问这些资源。
例如,要列出默认命名空间中的工作流,客户端会创建一个HTTP GET请求:
https://<k8s-api-server>/apis/argoproj.io/v1alpha1/namespaces/default/workflows
您可以在this link 之后找到 Golang、Python、Java、Ruby、OpenAPI 的示例。
因此,您可以生成一个描述 Argo Workflow 资源的 YAML 文件,并将其发送到 Kubernetes API,如示例中所述。
希望对你有帮助。
【讨论】: