工作流是基于Argo开发,可以为Kubernetes提供容器化的本地工作流程。工作流程中的每个步骤都定义为容器。本文主要介绍如何通过控制台或命令行的方式创建工作流。
AGS工作流即将下线,推荐您使用ACK One分布式工作流Argo集群。ACK One分布式工作流Argo集群,是面向批处理、数据处理、科学计算、持续集成等业务场景,提供托管开源Argo的工作流集群,可以实现大规模工作流编排与高效弹性运行,并优化运行成本。
前提条件
已创建ACK集群。具体操作,请参见创建Kubernetes托管版集群。
已安装ack-workflow组件。具体操作,请参见ack-workflow。
已开启收集工作流应用日志。具体操作,请参见Log。
已安装AGS命令行工具。具体操作,请参见AGS命令行帮助。
若您的集群未开通工作流功能,请提交工单申请。
背景信息
工作流基于Argo开发,可以为Kubernetes提供容器化的本地工作流程。工作流程中的每个步骤都定义为容器。
工作流是作为Kubernetes CRD(自定义资源定义)实现的。因此可以使用kubectl管理工作流,并与其他Kubernetes服务本地集成,例如Volumes、Secrets和RBAC。工作流控制器提供完整的工作流功能,包括参数替换、存储、循环和递归工作流程。
您可以通过控制台或命令行的方式创建工作流。
通过控制台创建Hello World工作流
登录容器服务管理控制台。
在控制台左侧导航栏,单击集群。
在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。
在集群管理页左侧导航栏中,选择 。
在工作流(Workflow)页面,单击页面右上角的创建。
在使用模板创建对话框,对模板进行相关配置,完成配置后单击创建。
集群:选择目标集群。工作流将部署在该集群内。
命名空间:选择工作流所属的命名空间,默认是
default
。示例模板:阿里云容器服务提供了多种资源类型的Kubernetes YAML示例模板,让您快速部署工作流。您可以根据Kubernetes YAML编排的格式要求自主编写,来描述您想定义的工作流。
下面是一个Hello World工作流的示例编排,基于容器服务自定义的编排模板。
apiVersion: Argoproj.io/v1alpha1 kind: Workflow #Kubernetes的类型。 metadata: generateName: hello-world- #工作流的名称。 spec: entrypoint: whalesay #调用whalesay镜像模板。 templates: - name: whalesay #模板名称 container: image: docker/whalesay command: [cowsay] args: ["hello world"] resources: #资源限制。 limits: memory: 32Mi cpu: 100m
创建完成后,返回工作流页面,您可以看到已经创建成功的工作流。
您可以单击详情,了解该工作流基本信息和容器组信息。
通过命令行创建Parameters工作流
创建并拷贝内容到arguments-parameters.yaml文件中。
apiVersion: Argoproj.io/v1alpha1 kind: Workflow metadata: generateName: hello-world-parameters- spec: #用"hello world"作为参数值调用whalesay镜像模板。 entrypoint: whalesay arguments: parameters: - name: message value: hello world templates: - name: whalesay inputs: parameters: - name: message #参数描述。 container: #用输入参数Args运行Cowsay。 image: docker/whalesay command: [cowsay] args: ["{{inputs.parameters.message}}"]
执行命令,创建Parameters工作流。
ags submit arguments-parameters.yaml -p message="goodbye world"
您也可以参见Workflow示例模板,通过更新YAML文件的方式创建其他工作流。
Ags CLI是兼容阿里云定制的兼容社区版Argo的命令行工具,使用Ags CLI可以方便地提交、查看、修改、删除工作流。关于更多内容请参见AGS命令行帮助。