从 Azure Kubernetes 服务 (AKS) 群集节点获取 kubelet 日志
在操作 Azure Kubernetes 服务 (AKS) 群集时,可能需要查看日志来排查问题。 Azure 门户有一项内置功能,可用于查看 AKS 主要组件和群集容器的日志。 有时,可能需要从 AKS 节点获取 kubelet 日志来排除故障。
本文介绍如何使用 journalctl
查看 AKS 节点的 kubelet 日志。
开始之前
本文假设你有现有 AKS 群集。 如果需要 AKS 群集,请使用 Azure CLI、Azure PowerShell 或 Azure 门户创建一个。
使用 kubectl raw
你可以使用以下命令快速查看任何节点 kubelet 日志:
kubectl get --raw "/api/v1/nodes/nodename/proxy/logs/messages"|grep kubelet
创建 SSH 连接
首先,要与需要查看其 kubelet 日志的节点建立 SSH 连接。 若要创建此连接,请按照通过 SSH 登录到 AKS 群集节点中的步骤操作。
获取 kubelet 日志
使用 kubectl debug
连接到节点后,运行以下命令拉取 kubelet 日志:
chroot /host
journalctl -u kubelet -o cat
注意
对于 Windows 节点,日志数据位于 C:\k
中,可以使用 more 命令查看:
more C:\k\kubelet.log
以下示例输出显示 kubelet 日志数据:
I0508 12:26:17.905042 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:26:27.943494 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:26:28.920125 8672 server.go:796] GET /stats/summary: (10.370874ms) 200 [[Ruby] 10.244.0.2:52292]
I0508 12:26:37.964650 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:26:47.996449 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:26:58.019746 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:27:05.107680 8672 server.go:796] GET /stats/summary/: (24.853838ms) 200 [[Go-http-client/1.1] 10.244.0.3:44660]
I0508 12:27:08.041736 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:27:18.068505 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:27:28.094889 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:27:38.121346 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:27:44.015205 8672 server.go:796] GET /stats/summary: (30.236824ms) 200 [[Ruby] 10.244.0.2:52588]
I0508 12:27:48.145640 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:27:58.178534 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:28:05.040375 8672 server.go:796] GET /stats/summary/: (27.78503ms) 200 [[Go-http-client/1.1] 10.244.0.3:44660]
I0508 12:28:08.214158 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:28:18.242160 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:28:28.274408 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:28:38.296074 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:28:48.321952 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
I0508 12:28:58.344656 8672 kubelet_node_status.go:497] Using Node Hostname from cloudprovider: "aks-agentpool-11482510-0"
后续步骤
如需从 Kubernetes 主节点获取更多故障排除信息,请参阅查看 AKS 中的 Kubernetes 主节点日志。