I am exploring Argo to orchestrate processing big data. I wish to kick off a workflow via REST call that divides a large data set among a number of machines with desired resources for processing. From an architectural perspective, how would I accomplish this? Is there an REST api or maybe some libraries for Node.js that I can use?
问问题
3274 次
2 回答
6
Argo 2.5引入了自己的 API。
目前有官方支持的Golang和Java客户端。还有一个社区支持的Python客户端。更新将在此处提供:https ://github.com/argoproj-labs/argo-client-gen
Argo 提供 Swagger API 规范,因此为其他语言生成客户端应该相当容易。
于 2020-02-28T15:51:39.160 回答
3
根据 Argo文档:
Argo 被实现为 kubernetes 控制器和工作流自定义资源。Argo 本身不运行 API 服务器,并且对于所有 CRD,它通过引入新的API 组/版本( argorproj.io/v1alpha1 ) 和种类( Workflow ) 来扩展 Kubernetes API 服务器。当 CRD 在集群中注册时,可以通过在 kubernetes API 服务器中公开新的端点来访问这些资源。
例如,要列出默认命名空间中的工作流,客户端会发出以下HTTP GET
请求:
https://<k8s-api-server>/apis/argoproj.io/v1alpha1/namespaces/default/workflows
您可以通过此链接找到 Golang、Python、Java、Ruby、OpenAPI 的示例。
因此,您可以生成一个描述 Argo Workflow 资源的 YAML 文件,并将其发送到 Kubernetes API,如示例中所述。
我希望它有所帮助。
于 2019-03-06T14:36:40.527 回答