创建工作流集群

工作流集群采用无服务器模式,使用阿里云弹性容器实例ECI运行工作流,通过优化Kubernetes集群参数,实现大规模工作流的高效弹性调度,同时配合抢占式ECI实例,优化成本。本文介绍如何创建工作流集群

前提条件

创建工作流集群

通过控制台创建集群

  1. 登录ACK One工作流集群控制台

  2. 工作流集群页面右上角单击创建工作流集群,在弹出的面板中填写相关参数,然后单击创建

    参数

    描述

    集群名称

    填写集群的名称。

    说明

    长度为1~63个字符,可包含字母、数字、下划线(_)或中划线(-),且仅允许以字母开头。

    地域

    选择集群所在的地域。

    专有网络

    设置集群的专有网络VPC,在下拉列表中选择已创建的VPC。

    虚拟交换机

    在下拉列表中选择已创建的交换机。

    APIServer负载均衡(SLB)

    无需设置,创建工作流集群时会默认为API Server 创建一个规格为标准型I(slb.s2.small)的SLB实例,若删除该实例会导致API Server 无法访问。

    如SLB实例规格不满足要求,您可以前往SLB控制台修改,具体操作,请参见SLB实例升配

    SLB实例计费信息,请参见SLB计费说明

    创建并绑定EIP

    选择是否为集群绑定EIP。

    • 开启后,系统将为内网SLB实例创建并绑定一个EIP(弹性公网IP),获得从公网访问集群API Server的能力。EIP绑定后不支持解绑,因为可能有子集群已经使用舰队的公网访问链接。

    • 若选择不开启,则无法通过外网访问集群API Server。

    EIP计费信息,请参见弹性公网IP计费说明

    开启组件及审计日志

    选择是否开启日志服务功能。

    开启后,系统将自动创建一个名称为k8s-log-{ClusterID}的日志服务,并收集托管侧控制平面组件(包括kube-apiserver、kube-controller-manager等)的日志到日志服务中。以便您后续对工作流集群的日志进行审计。

    日志服务计费信息,请参见日志服务计费说明

通过阿里云CLI创建集群

  1. 执行以下命令,创建工作流集群

    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"
    }
  2. 执行以下命令,查看工作流集群的状态。

    替换以下XXX为您上一步获取的ClusterId

    aliyun adcp DescribeHubClusterDetails --ClusterId XXX | jq .Cluster.ClusterInfo

    等待直到预期输出的Staterunning状态。

  3. 执行以下命令,安装jq。

    • macOS

      brew install jq
    • CentOS

      yum install jq 
    • Ubuntu

      apt-get install jq
  4. 执行以下命令,自动解析文本并生成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资源。

通过控制台删除集群

  1. 登录ACK One工作流集群控制台

  2. 在页面左上角单击集群名称后的下拉列表,选择需要删除的集群。

  3. 工作流集群页面右上角单击删除工作流集群,然后在弹出的提示框中单击确定

通过阿里云CLI删除集群

  1. 使用以下命令关闭Argo Server同时删除相关SLB和ECI等资源。

    aliyun adcp UpdateHubClusterFeature --ArgoServerEnabled false --ClusterId <cluster id>
  2. 使用以下命令删除工作流集群

     aliyun adcp DeleteHubCluster --ClusterId <cluster id>

相关文档