Execute Argo Workflows em escala no ECI serverless, otimizando os parâmetros do cluster Kubernetes para um agendamento elástico eficiente, com instâncias preemptíveis para redução de custos.
Pré-requisitos
Verifique se você tem:
Distributed Cloud Container Platform for Kubernetes (ACK One) ativado.
<!--@ph {"id="1da1d401ce4q3","props":"intl"}-->Elastic Container Instance (ECI) ativado.
Alibaba Cloud CLI 3.0.159 ou posterior instalado e credenciais configuradas
A política AliyunAdcpFullAccess está granted to the RAM user
-
jqinstalado (necessário para as etapas de CLI):macOS:
brew install jqCentOS:
yum install jqUbuntu:
apt-get install jq
Criar um workflow cluster
Usar o console
Acesse o ACK One console.
-
Na página Workflow Cluster, clique em Create Workflow Cluster. Configure os parâmetros a seguir e clique em Create.
Parameter
Description
Cluster Name
1 a 63 caracteres: letras, dígitos, underscores (
_) e hífens (-). Deve começar com uma letra.Region
A região de implantação.
VPC
A VPC do cluster.
vSwitch
O vSwitch dentro da VPC.
SLB Instance for API Server
Nenhuma configuração necessária. Uma instância SLB slb.s2.small é criada automaticamente. Excluí-la torna o API server inacessível. Consulte Billing overview.
Create and Associate EIP
Indica se um endereço IP elástico (EIP) será criado para expor o API server à Internet. O EIP não pode ser desassociado posteriormente, pois clusters filhos podem já utilizar o endpoint de acesso público da fleet. Se desativado, o API server não estará acessível pela Internet. Consulte Billing overview.
Enable Collection of Operation Logs and Auditing Logs
Ativa o Simple Log Service (SLS). Cria um service chamado k8s-log-{ClusterID} que coleta logs do
kube-apiservere dokube-controller-managerpara fins de auditoria. Consulte Billing overview.
Usar o Alibaba Cloud CLI
-
Defina as variáveis de ambiente. Substitua os placeholders pelos IDs dos seus recursos.
export REGION_ID=cn-zhangjiakou export VPC_ID=<your-vpc-id> export VSWITCH_IDS='["<vsw-id-1>","<vsw-id-2>"]' export CLUSTER_NAME=workflow1 -
Defina a região do CLI e crie um workflow cluster.
Parameter
Required
Description
ProfileYes
Defina como
XFlow.RegionIdYes
A região onde o cluster será implantado.
VpcIdYes
O ID da VPC.
VSwitchesYes
Array JSON com os IDs dos vSwitches. Use zonas diferentes para alta disponibilidade.
NameNo
O nome do cluster.
IsEnterpriseSecurityGroupYes
Defina como
truepara usar um grupo de segurança avançado.ApiServerPublicEipNo
Defina como
truepara expor o API server via EIP.aliyun configure set --region $REGION_ID aliyun adcp CreateHubCluster \ --Profile XFlow \ --RegionId $REGION_ID \ --VpcId $VPC_ID \ --VSwitches "$VSWITCH_IDS" \ --Name $CLUSTER_NAME \ --ApiServerPublicEip true \ --IsEnterpriseSecurityGroup trueExemplo de saída:
{ "ClusterId": "c1234abcd...", "RequestId": "A1B2C3D4...", "TaskId": "T9876..." }Salve o valor de
ClusterIdpara as etapas seguintes.export CLUSTER_ID=<your-cluster-id> -
Aguarde até que o cluster atinja o estado
running.aliyun adcp DescribeHubClusterDetails --ClusterId $CLUSTER_ID | jq .Cluster.ClusterInfoExecute novamente até que o status exiba
running. -
Gere e exporte um arquivo kubeconfig.
aliyun adcp DescribeHubClusterKubeconfig --ClusterId $CLUSTER_ID \ | jq -r .Kubeconfig \ | tee ack-argo-workflow-kubeconfig export KUBECONFIG=ack-argo-workflow-kubeconfigTanto o
kubectlquanto o Argo CLI passarão a direcionar este cluster por padrão.
Excluir um workflow cluster
Exclua todos os workflows, pods e instâncias ECI do cluster antes da exclusão.
Usar o console
Acesse o ACK One console.
Selecione o cluster a ser excluído na lista suspensa.
Na página Workflow Cluster, clique em Delete Workflow Cluster. Clique em OK para confirmar.
Usar o Alibaba Cloud CLI
-
Desative o Argo Server e exclua as instâncias SLB e ECI associadas.
aliyun adcp UpdateHubClusterFeature --ArgoServerEnabled false --ClusterId $CLUSTER_ID -
Exclua o workflow cluster.
aliyun adcp DeleteHubCluster --ClusterId $CLUSTER_ID