Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo mostra como usar eventos do Kubernetes para monitorar e solucionar problemas em seus clusters do Serviço Kubernetes do Azure (AKS).
O que são eventos do Kubernetes?
Os eventos são uma das fontes mais proeminentes para monitorar e solucionar problemas no Kubernetes. Eles capturam e registam informações sobre o ciclo de vida de vários objetos do Kubernetes, como pods, nodes, serviços e implementações. Ao monitorar eventos, você pode obter visibilidade das atividades do cluster, identificar problemas e solucionar problemas de forma eficaz.
Os eventos do Kubernetes não persistem durante todo o ciclo de vida do cluster, pois não há nenhum mecanismo de retenção. Os eventos só estão disponíveis durante uma hora após a geração do evento. Para armazenar eventos por um período de tempo maior, habilite Container insights.
Objetos de evento do Kubernetes
A tabela a seguir lista alguns dos principais objetos de evento do Kubernetes:
| Nome do campo | Descrição |
|---|---|
| tipo | O tipo é baseado na gravidade do evento: Os eventos de aviso sinalizam situações potencialmente problemáticas, como um pod a falhar repetidamente ou um nó a ficar sem recursos. Requerem atenção, mas podem não resultar em falha imediata. Os eventos normais representam operações de rotina, como um pod a ser agendado ou um escalonamento de implantação. Eles geralmente indicam um comportamento saudável do agrupamento. |
| razão | A razão pela qual o evento foi gerado. Por exemplo, FailedScheduling ou CrashLoopBackoff. |
| mensagem | Uma mensagem legível por humanos que descreve o evento. |
| espaço de nomes | O namespace do objeto Kubernetes ao qual o evento está associado. |
| primeira vez visto | Carimbo de data/hora quando o evento foi observado pela primeira vez. |
| visto pela última vez | Data e hora de quando o evento foi observado pela última vez. |
| controlador de relatórios | O nome do controlador que relatou o evento. Por exemplo, kubernetes.io/kubelet. |
| objecto | O nome do objeto Kubernetes ao qual o evento está associado. |
Para obter mais informações, consulte a documentação oficial do Kubernetes.
Ver eventos do Kubernetes
Liste todos os eventos no cluster usando o kubectl get events comando.
Supondo que seu cluster já esteja criado e disponível (por pré-requisitos de documento), obtenha credenciais (observe que o --overwrite-existing sinalizador está definido para evitar erros kubeconfig):
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --overwrite-existing
Agora liste todos os eventos no seu cluster:
kubectl get events
Resultados:
LAST SEEN TYPE REASON OBJECT MESSAGE
xxm Normal Scheduled pod/my-pod-xxxxx Successfully assigned default/my-pod-xxxxx to aks-nodepoolxx-xxxxxxx-vmss000000
xxm Normal Pulled pod/my-pod-xxxxx Container image "nginx" already present on machine
xxm Normal Created pod/my-pod-xxxxx Created container nginx
xxm Normal Started pod/my-pod-xxxxx Started container nginx
...
Observe os eventos de um pod específico primeiro encontrando o nome do pod e, em seguida, usando o kubectl describe pod comando.
Liste os pods no namespace atual:
kubectl get pods
Resultados:
NAME READY STATUS RESTARTS AGE
my-pod-xxxxx 1/1 Running 0 xxm
nginx-deployment-xxxxx 1/1 Running 0 xxm
...
Substitua <pod-name> abaixo pelo nome real do pod. Para automação, aqui está um exemplo para o primeiro pod da lista:
POD_NAME=$(kubectl get pods -o jsonpath="{.items[0].metadata.name}")
kubectl describe pod $POD_NAME
Práticas recomendadas para solução de problemas com eventos
Filtrando eventos por relevância
Você pode ter vários namespaces e serviços em execução no cluster do AKS. A filtragem de eventos com base no tipo de objeto, namespace ou motivo pode ajudar a restringir os resultados às informações mais relevantes.
Por exemplo, você pode usar o seguinte comando para filtrar eventos dentro do namespace padrão:
kubectl get events --namespace default
Automatizando notificações de eventos
Para garantir uma resposta atempada a eventos críticos no seu cluster AKS, configure notificações automatizadas. O Azure oferece integração com serviços de monitoramento e alerta, como o Azure Monitor. Você pode configurar alertas para disparar com base em padrões de eventos específicos. Desta forma, é imediatamente informado sobre questões cruciais que requerem atenção.
Revisão regular de eventos
Crie o hábito de rever regularmente os eventos no seu cluster AKS. Essa abordagem proativa pode ajudá-lo a identificar tendências, detetar problemas potenciais com antecedência e evitar escaladas. Ao manter-se a par dos eventos, pode manter a estabilidade e o desempenho das suas aplicações.
Próximos passos
Agora que você entende os eventos do Kubernetes, pode continuar sua jornada de monitoramento e observabilidade habilitando os insights do Container.