工作流集群采用无服务器模式,使用阿里云弹性容器实例ECI运行工作流,通过优化Kubernetes集群参数,实现大规模工作流的高效弹性调度,同时配合抢占式ECI实例,优化成本。本文介绍如何创建工作流集群。
前提条件
已授予RAM用户AliyunAdcpFullAccess权限。具体操作,请参见为RAM用户授权。
创建工作流集群
通过控制台创建集群
在工作流集群页面右上角单击创建工作流集群,在弹出的面板中填写相关参数,然后单击创建。
参数
描述
集群名称
填写集群的名称。
说明长度为1~63个字符,可包含字母、数字、下划线(_)或中划线(-),且仅允许以字母开头。
地域
选择集群所在的地域。
专有网络
设置集群的专有网络VPC,在下拉列表中选择已创建的VPC。
虚拟交换机
在下拉列表中选择已创建的交换机。
APIServer负载均衡(SLB)
无需设置,创建工作流集群时会默认为API Server 创建一个规格为标准型I(slb.s2.small)的SLB实例,若删除该实例会导致API Server 无法访问。
SLB实例计费信息,请参见SLB计费说明。
创建并绑定EIP
选择是否为集群绑定EIP。
开启后,系统将为内网SLB实例创建并绑定一个EIP(弹性公网IP),获得从公网访问集群API Server的能力。EIP绑定后不支持解绑,因为可能有子集群已经使用舰队的公网访问链接。
若选择不开启,则无法通过外网访问集群API Server。
EIP计费信息,请参见弹性公网IP计费说明。
开启组件及审计日志
选择是否开启日志服务功能。
开启后,系统将自动创建一个名称为k8s-log-{ClusterID}的日志服务,并收集托管侧控制平面组件(包括kube-apiserver、kube-controller-manager等)的日志到日志服务中。以便您后续对工作流集群的日志进行审计。
日志服务计费信息,请参见日志服务计费说明。
通过阿里云CLI创建集群
执行以下命令,创建工作流集群。
aliyun configure set --region cn-zhangjiakou aliyun adcp CreateHubCluster --Profile XFlow --RegionId cn-zhangjiakou --VpcId vpc-xxx --VSwitches "[\"vsw-xxx\",\"vsw-xxx\"]" --Name workflow1 --ApiServerPublicEip true --IsEnterpriseSecurityGroup true
参数
说明
Profile
必选,输入
XFlow
。RegionId
必选,工作流集群所在地域。本示例选择
cn-zhangjiakou
。VpcId
必选,工作流集群所在专有网络VPC ID。
VSwitches
必选,工作流运行ECI所在的交换机vSwtich ID,格式为数组。请输入多可用区的交换机ID。
Name
可选,工作流集群名称。
IsEnterpriseSecurityGroup
必选,使用企业安全组,输入
true
。ApiServerPublicEip
可选,是否使用公网EIP暴露工作流引擎实例APIServer地址。
预期输出如下,并记录
ClusterId
。{ "ClusterId": "xxx", "RequestId": "xxx", "TaskId": "xxx" }
执行以下命令,查看工作流集群的状态。
替换以下
XXX
为您上一步获取的ClusterId
。aliyun adcp DescribeHubClusterDetails --ClusterId XXX | jq .Cluster.ClusterInfo
等待直到预期输出的
State
为running
状态。执行以下命令,安装jq。
macOS:
brew install jq
CentOS:
yum install jq
Ubuntu:
apt-get install jq
执行以下命令,自动解析文本并生成KubeConfig。
aliyun adcp DescribeHubClusterKubeconfig --ClusterId <cluster id> | jq -r .Kubeconfig | tee ack-argo-workflow-kubeconfig # 设置KUBECONFIG环境变量准备运行kubectl和Argo CLI。 export KUBECONFIG=ack-argo-workflow-kubeconfig
删除工作流集群
删除工作流集群前,请先删除集群上的工作流,以触发删除Pod以及Pod相关的ECI资源。
通过控制台删除集群
在页面左上角单击集群名称后的下拉列表,选择需要删除的集群。
在工作流集群页面右上角单击删除工作流集群,然后在弹出的提示框中单击确定。
通过阿里云CLI删除集群
使用以下命令关闭Argo Server同时删除相关SLB和ECI等资源。
aliyun adcp UpdateHubClusterFeature --ArgoServerEnabled false --ClusterId <cluster id>
使用以下命令删除工作流集群。
aliyun adcp DeleteHubCluster --ClusterId <cluster id>