Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo mostra como usar os eventos do Kubernetes para monitorar e solucionar problemas nos seus clusters do AKS (Serviço de Kubernetes do Azure).
O que são eventos do Kubernetes?
Os eventos são uma das fontes mais proeminentes para monitoramento e solução de problemas no Kubernetes. Eles capturam e registram informações sobre o ciclo de vida de vários objetos do Kubernetes, tais como pods, nós, serviços e implantações. Ao monitorar eventos, você pode obter visibilidade das atividades do seu cluster, identificar e solucionar problemas com eficiência.
Os eventos do Kubernetes não persistem em todo o ciclo de vida do cluster, pois não há nenhum mecanismo de retenção. Os eventos só ficam disponíveis por uma hora após a geração do evento. Para armazenar os eventos por um período mais longo, habilite os Insights do contêiner.
Objetos de eventos do Kubernetes
A seguinte tabela lista alguns dos principais objetos de evento do Kubernetes:
| Nome do campo | Descrição |
|---|---|
| tipo | O tipo é baseado na gravidade do evento: Os eventos do tipo Aviso sinalizam situações potencialmente problemáticas, como falha repetida de um pod ou recursos insuficientes de um nó. Eles exigem atenção, mas podem não resultar em falha imediata. Os eventos do tipo Normal representam operações de rotina, como agendamento de um pod ou escala vertical de uma implantação. Eles geralmente indicam um comportamento de cluster íntegro. |
| reason | O motivo pelo qual o evento foi gerado. Por exemplo, FailedScheduling ou CrashLoopBackoff. |
| mensagem | Uma mensagem legível por humanos que descreve o evento. |
| espaço para nome | O namespace do objeto de Kubernetes ao qual o evento está associado. |
| firstSeen | Carimbo de data/hora em que o evento foi primeiramente observado. |
| lastSeen | Carimbo de data/hora de quando o evento foi observado pela última vez. |
| reportingController | O nome do controlador que relatou o evento. Por exemplo, kubernetes.io/kubelet. |
| objeto | O nome do objeto de Kubernetes ao qual o evento está associado. |
Para obter mais informações, confira a documentação oficial do Kubernetes.
Exibir os eventos do Kubernetes
Liste todos os eventos no cluster usando o comando kubectl get events.
Supondo que seu cluster já esteja criado e disponível (por pré-requisitos do doc), obtenha credenciais (observe que o --overwrite-existing sinalizador está definido para evitar erros de kubeconfig):
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --overwrite-existing
Agora, liste todos os eventos em 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
...
Inspecione os eventos de um pod específico primeiro encontrando o nome do pod e, em seguida, usando o comando kubectl describe pod.
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
Melhores práticas para solucionar problemas com eventos
Filtragem de eventos por relevância
Você pode ter vários namespaces e serviços em execução no cluster do AKS. Filtrar os 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 no namespace padrão:
kubectl get events --namespace default
Automatização de notificações de eventos
Para garantir uma resposta oportuna a eventos críticos em seu cluster do 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 serem disparados com base em padrões de eventos específicos. Dessa forma, você é informado imediatamente sobre problemas cruciais que exigem atenção.
Revisão regular de eventos
Crie o hábito de revisar regularmente os eventos em seu cluster do AKS. Essa abordagem proativa pode ajudá-lo a identificar tendências, capturar possíveis problemas com antecedência e evitar escalonamentos. Ao ficar por dentro dos eventos, você pode manter a estabilidade e o desempenho de seus aplicativos.
Próximas etapas
Agora que você entende como funcionam os eventos do Kubernetes, continue sua jornada de monitoramento e observabilidade habilitando os Insights do contêiner.