Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Criar um workflow

Última atualização: Jun 27, 2026

Os clusters de workflow baseiam-se no Argo Workflows open-source e oferecem suporte a pipelines de CI/CD, processamento de dados, machine learning e cálculos de simulação. Este tópico mostra como instale a Alibaba Cloud Argo CLI, crie e envie um workflow hello-world, verifique seu status e configure recursos de CPU e memória.

Pré-requisitos

Antes de começar, verifique se você tem:

Instale a Alibaba Cloud Argo CLI

A Alibaba Cloud Argo CLI é totalmente compatível com a Argo CLI open-source e adiciona métricas aprimoradas e recursos de log. Use-a para:

  • Consultar o uso de CPU, o uso de memória e o custo operacional de um workflow.

  • Recuperar logs de pods já excluídos.

Baixe o binário para o seu sistema operacional:

Os exemplos a seguir usam Linux.

  1. Baixe o binário.

    wget https://ack-one.oss-cn-hangzhou.aliyuncs.com/cli/v3.4.12/argo-cli-aliyun-linux
  2. Torne-o executável.

    chmod +x argo-cli-aliyun-linux
  3. Mova-o para um diretório em seu PATH.

    mv argo-cli-aliyun-linux /usr/local/bin/argo
  4. Verifique a instalação.

    argo version

Contas de serviço de workflow

Workflows podem referenciar contas de serviço para acessar outros recursos do Kubernetes. O cluster de workflow concede automaticamente as permissões necessárias às contas de serviço criadas por você. Se uma conta de serviço tiver permissões insuficientes, entre no grupo 35688562 do DingTalk para solicitar suporte técnico.

Crie um workflow

Usar a Alibaba Cloud Argo CLI

Referência rápida — comandos comuns da Argo CLI

Operação

Comando

Envie um workflow

argo submit <file>.yaml

Listar todos os workflows

argo list

Obter o status de um workflow

argo get <workflow-name>

  1. Crie o arquivo helloworld-workflow.yaml com o seguinte conteúdo.

    apiVersion: argoproj.io/v1alpha1
    kind: Workflow                  # new type of k8s spec
    metadata:
      generateName: hello-world-    # name prefix for the workflow instance
    spec:
      entrypoint: whalesay          # first template to run
      templates:
        - name: whalesay            # name of the template
          container:
            image: docker/whalesay
            command: [cowsay]
            args: ["hello world"]

    Campos principais:

    Campo

    Descrição

    kind: Workflow

    Declara um novo tipo de recurso do Kubernetes gerenciado pelo Argo.

    generateName

    O Kubernetes gera um nome exclusivo para cada execução ao anexar um sufixo aleatório a este prefixo.

    spec.entrypoint

    Modelo executado primeiro pelo Argo quando o workflow inicia.

    spec.templates

    Defina o conjunto de modelos disponíveis para o workflow. Cada modelo descreve uma unidade de trabalho.

  2. Envie o workflow.

    argo submit helloworld-workflow.yaml
  3. Liste todos os workflows para confirme o envio.

    argo list

    Saída esperada:

    NAME                STATUS      AGE   DURATION   PRIORITY
    hello-world-lgdpp   Succeeded   2m    37s        0
  4. Obtenha o status detalhado do workflow.

    argo get hello-world-lgdpp

    Saída esperada:

    Name:                hello-world-lgdpp
    Namespace:           default
    ServiceAccount:      unset (will run with the default ServiceAccount)
    Status:              Succeeded
    Conditions:
     PodRunning          False
     Completed           True
    ....
    Duration:            37 seconds
    Progress:            1/1
    ResourcesDuration:   17s*(1 cpu),17s*(100Mi memory)
    
    STEP                  TEMPLATE  PODNAME            DURATION  MESSAGE
     ✔ hello-world-lgdpp  whalesay  hello-world-lgdpp  27s

    O campo ResourcesDuration exibe a CPU e a memória consumidas pelo workflow. Use essa informação para monitorar custos.

Usar kubectl

Após configure o arquivo kubeconfig, use o kubectl para gerencie clusters de workflow. Algumas operações têm restrições em comparação aos clusters Kubernetes padrão. A tabela a seguir descreve as permissões disponíveis para cada tipo de recurso.

RecursoPermissões
priorityclassesGerencie PriorityClasses e personalize a prioridade de agendamento de pods.
namespacesCrie namespaces e tenha permissões totais sobre todos os recursos em namespaces autogerenciados. O acesso a namespaces de sistema (nomes iniciados com kube-) é bloqueado.
Importante

O namespace com o nome igual ao ID do cluster é o namespace de sistema do Argo — você pode gerenciá-lo. Por exemplo, modifique as configurações de workflow do Argo em workflow-controller-configmap.

persistentvolumesPermissões totais.
persistentvolumeclaimsPermissões totais sobre recursos em namespaces autogerenciados.
secrets, configmaps, serviceaccountsPermissões totais sobre recursos em namespaces autogerenciados.
podsPermissões de leitura sobre recursos em namespaces autogerenciados.
pods/log, eventsPermissões de leitura sobre recursos em namespaces autogerenciados.
pods/execPermissões de criação sobre recursos em namespaces autogerenciados.
Argo: workflows, workflowtasksets, workflowtemplates, cronworkflowsPermissões totais sobre recursos em namespaces autogerenciados.

Configure solicitações de CPU e memória

Por padrão, os clusters de workflow usam instâncias de container elásticas preemptíveis. Instâncias com pagamento conforme o uso também estão disponíveis para otimização de custos. O período de proteção das instâncias preemptíveis é de 1 hora. Cada etapa do workflow deve ser concluída dentro dessa janela.

Instâncias de container elásticas preemptíveis exigem no mínimo 2 vCPUs:

  • Se um container não tiver solicitações de recursos ou solicitar menos de 2 vCPUs/4 GiB, o sistema usará o padrão de 2 vCPUs/4 GiB.

  • Se as solicitações excederem 2 vCPUs/4 GiB, o sistema selecionará automaticamente uma instância que atenda a essas especificações.

Combinações suportadas de CPU e memória (recomendamos manter as solicitações de CPU em até 8 vCPUs):

vCPU

Memória (GiB)

2

4, 8 e 16

4

4, 8, 16 e 32

8

4, 8, 16, 32 e 64

Forçar uma instância com pagamento conforme o uso

Para evitar o uso de instâncias de container elásticas preemptíveis na execução de tarefas críticas no modo de priorização de custos, force o uso de uma instância de container elástica com pagamento conforme o uso para execute o workflow.

Configure os parâmetros requests e limits na especificação do container, conforme o exemplo a seguir:

apiVersion: argoproj.io/v1alpha1
kind: Workflow                  # new type of k8s spec
metadata:
  generateName: hello-world-    # name prefix for the workflow instance
spec:
  entrypoint: whalesay          # first template to run
  templates:
    - name: whalesay            # name of the template
      container:
        image: docker/whalesay
        command: [cowsay]
        args: ["hello world"]
        resources:
          requests:
            cpu: 0.5
            memory: 1Gi
          limits:
            cpu: 0.5
            memory: 1Gi