Condividi tramite


Ottenere i log kubelet dai nodi del cluster del servizio Azure Kubernetes

Potrebbe essere necessario esaminare i log per risolvere un problema nel cluster del servizio Azure Kubernetes. È possibile usare gli strumenti nel portale di Azure per visualizzare i log dei componenti principali e dei contenitori del cluster AKS. In alcuni casi, potrebbe essere necessario ottenere i kubelet logs dai nodi AKS per aiutarti a diagnosticare un problema.

Questo articolo illustra come usare journalctl per visualizzare i log kubelet in un nodo del servizio Azure Kubernetes.

In alternativa, è possibile raccogliere i log kubelet usando la funzionalità di raccolta syslog in Informazioni dettagliate sui contenitori in Monitoraggio di Azure.

Operazioni preliminari

Questo articolo presuppone che si disponga di un cluster del servizio Azure Kubernetes esistente. Se hai bisogno di un cluster AKS, creane uno usando l'interfaccia della riga di comando di Azure, Azure PowerShell o il portale di Azure.

Connettersi al cluster AKS

Per interagire con il cluster AKS, ottenere prima di tutto le credenziali del cluster usando Azure CLI.

export RESOURCE_GROUP_NAME="<ResourceGroupName>"
export AKS_CLUSTER_NAME="<AKSClusterName>"
az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $AKS_CLUSTER_NAME

Questo comando configura kubectl per usare le credenziali per il cluster AKS.

Usare il comando kubectl raw

È possibile visualizzare rapidamente i log kubelet di qualsiasi nodo usando il comando seguente:

export NODE_NAME="aks-agentpool-xxxxxxx-0"
kubectl get --raw "/api/v1/nodes/$NODE_NAME/proxy/logs/messages" | grep kubelet

Risultati:

I0508 12:26:17.905042    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:26:27.943494    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:26:28.920125    8672 server.go:796] GET /stats/summary: (10.370874ms) 200 [[Ruby] 10.244.0.x:52492]
I0508 12:26:37.964650    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
...

Creare una connessione SSH

È necessario creare una connessione SSH (Secure Shell Protocol) con il nodo per cui è necessario visualizzare i log kubelet. Per creare questa connessione, completare i passaggi descritti in accesso SSH ai nodi del cluster AKS.

Ottenere i log di kubelet

Dopo aver eseguito la connessione al nodo usando kubectl debug, eseguire il comando seguente per eseguire il pull dei log kubelet:

chroot /host
journalctl -u kubelet -o cat

Nota

Per i nodi Di Windows, i dati di log si trovano in C:\k e possono essere visualizzati usando il more comando :

more C:\k\kubelet.log

L'output di esempio seguente mostra i dati di log kubelet:

I0508 12:26:17.905042    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:26:27.943494    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:26:28.920125    8672 server.go:796] GET /stats/summary: (10.370874ms) 200 [[Ruby] 10.244.0.x:52292]
I0508 12:26:37.964650    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:26:47.996449    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:26:58.019746    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:27:05.107680    8672 server.go:796] GET /stats/summary/: (24.853838ms) 200 [[Go-http-client/1.1] 10.244.0.x:44660]
I0508 12:27:08.041736    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:27:18.068505    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:27:28.094889    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:27:38.121346    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:27:44.015205    8672 server.go:796] GET /stats/summary: (30.236824ms) 200 [[Ruby] 10.244.0.x:52588]
I0508 12:27:48.145640    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:27:58.178534    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:28:05.040375    8672 server.go:796] GET /stats/summary/: (27.78503ms) 200 [[Go-http-client/1.1] 10.244.0.x:44660]
I0508 12:28:08.214158    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:28:18.242160    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:28:28.274408    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:28:38.296074    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:28:48.321952    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"
I0508 12:28:58.344656    8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-xxxxxxx-0"