Este tópico descreve como criar e executar um workflow hello-world no cluster ACK com a Argo CLI.
Pré-requisitos
Antes de começar, verifique se você possui:
O componente Argo Workflows instalado e a Alibaba Cloud Argo CLI configurada. Para obter instruções de configuração, consulte Ativar orquestração de tarefas em lote.
Como funciona
Se você já executou um contêiner com Docker, saiba que um workflow do Argo faz o mesmo, mas em um cluster Kubernetes:
docker run mirrors-ssl.aliyuncs.com/busybox:latest echo "hello world"
Um workflow do Argo encapsula essa execução de contêiner em um recurso do Kubernetes. Em vez de usar um comando da CLI, defina o contêiner, o comando e os argumentos em um arquivo YAML e envie-o para o cluster.
Criar e executar um workflow
Etapa 1: Definir o workflow
Crie um arquivo chamado helloworld-workflow.yaml com o seguinte conteúdo:
apiVersion: argoproj.io/v1alpha1
kind: Workflow # Defines a new Kubernetes resource type for Argo Workflows.
metadata:
generateName: hello-world- # The prefix for the workflow name. Kubernetes will append a unique suffix.
spec:
entrypoint: main # Specifies the template to execute first.
templates:
- name: main # The name of the template.
container:
image: mirrors-ssl.aliyuncs.com/busybox:latest
command: [ echo ]
args: [ "hello world" ]
Campos principais:
|
Campo |
Descrição |
|
|
Declara este item como um recurso de workflow do Argo no Kubernetes. |
|
|
Define o prefixo do nome. O Kubernetes adiciona um sufixo aleatório e gera um nome exclusivo, como |
|
|
Especifica qual modelo executar primeiro. Em workflows com várias etapas, a execução começa aqui. |
|
|
Define as unidades de trabalho. Cada modelo pode ser um contêiner, um script ou uma sequência de etapas. |
Etapa 2: Enviar o workflow
Execute o comando a seguir para enviar o workflow ao namespace argo:
argo submit helloworld-workflow.yaml -n argo
Etapa 3: Verificar o status do workflow
-
Liste todos os workflows no namespace:
argo list -n argoA saída será semelhante a:
NAME STATUS AGE DURATION PRIORITY hello-world-XXXXX Succeeded 2m 37s 0O status
Succeededconfirma a conclusão do workflow. -
Obtenha os detalhes completos do workflow:
argo get hello-world-XXXXX -n argoA saída será semelhante a:
Name: hello-world-XXXXX Namespace: argo 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-XXXXX whalesay hello-world-XXXXX 27sOs campos
Status: SucceededeCompleted: Trueconfirmam a execução completa do workflow.
Referência rápida da Argo CLI
|
Operação |
Comando |
|
Enviar um workflow |
|
|
Listar todos os workflows |
|
|
Obter detalhes de um workflow específico |
|
Próximos passos
O sistema exclui periodicamente os recursos de workflow do cluster. Para persistir registros de workflow em um banco de dados, consulte Persistência de workflow.