Persista logs de pods de workflow com o Simple Log Service (SLS) para consultá-los mesmo após a exclusão dos pods.
Como funciona
Ao criar um cluster de workflow, o sistema cria um projeto do SLS chamado k8s-log-<clusterid>. Todos os logs dos pods são coletados em um Logstore denominado workflow-logstore.
Após ativar esse recurso, visualize logs pela CLI do Argo, pelo Argo Server ou pela interface do Argo, independentemente de o pod ainda estar em execução.
Limitações
Se o
oss-artifact-repositoryestiver ativado comarchiveLogs: true, os logs serão armazenados no repositório de artefatos e a coleta de logs do SLS não terá efeito.Em comparação ao
oss-artifact-repository, o SLS oferece gerenciamento automático do ciclo de vida dos logs, com dias de retenção configuráveis e recursos avançados de consulta. Para coletar logs usando o SLS, remova a configuraçãoarchiveLogs: true.Com a coleta de logs ativada, os logs dos pods de workflow ficam disponíveis na CLI do Argo e na interface do Argo enquanto o workflow estiver no cluster, mesmo que um pod seja excluído.
Caso o workflow esteja persistido em um banco de dados, baixe seus logs como um arquivo ZIP ou visualize-os no console do SLS mesmo após a exclusão do workflow. Consulte Persist workflows.
Ative o SLS
Se o projeto k8s-log-<clusterid> não foi criado automaticamente, crie-o manualmente. Consulte Create an SLS project.
Escolha um dos métodos abaixo:
|
Método |
Mais indicado para |
|
Configuração rápida com um único comando interativo |
|
|
Workflows GitOps ou gerenciamento declarativo de configurações |
Ative o SLS com a Alibaba Cloud Argo CLI
A Alibaba Cloud Argo CLI é totalmente compatível com a Argo CLI open source e adiciona suporte à coleta de logs para pods excluídos.
Pré-requisitos
Alibaba Cloud Argo CLI versão 3.4.12 ou posterior instalada.
Se utilizar um usuário do Resource Access Management (RAM), anexe a política AliyunLogReadOnlyAccess a esse usuário. Consulte Create a RAM user and authorize the RAM user to access SLS.
Etapas
Configure o SLS. Quando solicitado, insira o número de dias de retenção de logs (padrão: 7).
argo config sls
Please input log retention days. Default is 7 days.
10
Saída esperada:
Start to config SLS for your cluster.
Created AliyunLogConfig CR workflow-sls-config in default namespace.
Created SLS logstore workflow-logstore in SLS project k8s-log-<clusterid>, log retention days is 10 days
Essa saída confirma que o SLS está configurado. Todos os logs de workflow são coletados no Logstore workflow-logstore dentro do projeto k8s-log-<clusterid>.
Ative o SLS com AliyunLogConfig
Aplique o YAML a seguir para criar um recurso personalizado AliyunLogConfig. O controlador do SLS cria automaticamente o projeto k8s-log-<clusterid> e o Logstore workflow-logstore.
cat << EOF | kubectl apply -f -
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: workflow-sls-config
namespace: default
spec:
lifeCycle: 5 # Log retention period in days
logstore: workflow-logstore
logtailConfig:
configName: workflow-sls-config
inputType: plugin # Use the plugin-based input method
inputDetail:
plugin:
inputs:
- type: service_docker_stdout # Collect container stdout and stderr
detail:
Stdout: true
Stderr: true
EOF
Verifique a coleta de logs
Após ativar o SLS, confirme se os logs estão sendo coletados:
Faça login no console do SLS.
Localize o projeto
k8s-log-<clusterid>.Clique em workflow-logstore e verifique se as entradas de log aparecem.
Se nenhum log aparecer, verifique se o recurso personalizado AliyunLogConfig foi criado:
kubectl get aliyunlogconfigs -n default
A saída deve incluir workflow-sls-config sem status de erro. Se o recurso estiver ausente ou com erro, execute novamente as etapas de ativação ou verifique as permissões do usuário RAM.
Acessar logs com a Argo CLI
A Alibaba Cloud Argo CLI oferece duas formas de visualizar logs de workflow. O método direto (flag --sls) é recomendado, pois não exige o Argo Server.
Execute kubectl logs <pod-name> para visualizar logs de um pod existente. Esse comando retorna até 2.000 linhas por padrão. Para visualizar mais logs ou logs de um pod excluído, use um dos métodos a seguir.
Usar a Argo CLI diretamente (recomendado)
Pré-requisitos
Alibaba Cloud Argo CLI versão 3.4.12 ou posterior instalada.
Se utilizar um usuário RAM, anexe a política AliyunLogReadOnlyAccess a esse usuário.
Etapas
-
Conceda acesso da Argo CLI ao seu cluster:
argo config init # Follow the prompts to enter your AccessKey ID and AccessKey secret. -
Consulte os logs:
# View logs for a specific pod argo logs <workflow-name> <pod-name> --sls # Download all logs for a workflow as a ZIP file argo logs <workflow-name> --sls
Usar o Argo Server
Para acessar o SLS por meio do Argo Server, defina as seguintes variáveis de ambiente.
Para consultar logs do SLS pelo Argo Server, especifique o<pod-name>. Para acessar um namespace diferente, obtenha oKUBE_TOKENcorrespondente a esse namespace.
-
Defina as variáveis de ambiente necessárias:
export ARGO_SERVER=argo.<cluster id>.<region>.alicontainer.com:2746 export KUBE_TOKEN=$(kubectl create token default -n default --duration 24h) export ARGO_TOKEN="Bearer $KUBE_TOKEN" export ARGO_INSECURE_SKIP_VERIFY=true -
Consulte logs de um pod específico:
argo logs <workflow-name> <pod-name>
Visualize logs de workflows persistidos em bancos de dados
Se um workflow estiver persistido em um banco de dados, baixe seus logs mesmo após a exclusão do workflow.
-
Conceda acesso da Argo CLI ao seu cluster:
argo config init # Follow the prompts to enter your AccessKey ID and AccessKey secret. -
Obtenha o UID do workflow arquivado:
argo archive listSaída esperada:
NAMESPACE NAME STATUS AGE DURATION PRIORITY MESSAGE P/R/C PARAMETERS UID default hello-world-l6c2r Succeeded 3d 1m 0 0/0/0 179eaef0-fde3-496f-946d-549e8f****** -
Baixe os logs do workflow usando o UID:
argo archive logs 179eaef0-fde3-496f-946d-549e8f******Os logs são salvos como
<workflow-name>.zipno diretório atual.
Visualize logs na interface do Argo
A interface do Argo exibe diretamente os logs dos pods de workflow. Se um pod for excluído, os logs do SLS serão mostrados no lugar da saída ao vivo do pod.

Desativar o SLS
-
Exclua o recurso personalizado
AliyunLogConfig:kubectl delete aliyunlogconfigs.log.alibabacloud.com workflow-sls-config -n default Faça login no console do SLS e exclua o Logstore
workflow-logstore.
Próximas etapas
Persist workflows — Armazene o estado do workflow em um banco de dados para manter logs e resultados após a exclusão.
Alibaba Cloud Argo CLI — Baixe e configure a CLI para acesso completo aos logs.