【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)

发布时间 2023-03-22 19:13:57作者: 路边两盏灯

问题描述

使用Azure Kubernetes服务(AKS),可以通过kubectl连接 pod 中查看日志,但是如何来查看节点的系统日志呢?如是否有ubuntu系统升级的记录?

 

问题解答

是的,可以进入AKS的节点查看系统文件,如日志文件(/var/log) 或者由应用生产的其他日志。

 

具体的操作步骤如下:

第一步: 登录到AKS集群,并获取节点信息

## 设置 az cli命令的执行环境为 中国区Azure AzureChinaCloud
az cloud set --name AzureChinaCloud
## 登录到Azure,在弹出的对话框中输入用户名和密码 az login # get the credentials for the cluster ## -g 后面输入您aks服务所在的resource group名称 ## -n 表示aks服务的名称 az aks get-credentials -g 'aks-rg' -n myaks001 ## 获取节点信息 kubectl get node

获取节点的结果示意图:

第二步:创建一个Debug Pod, 通过它查看日志文件

kubectl debug node/<替换成第一步查找出来的Node ID> -it --image=mcr.azk8s.cn/dotnet/runtime-deps:6.0

第三步:chroot /host 提升权限 

## 提升权限 
chroot /host

如果不提升权限,则很多日志文件无法查看。对比效果如下:

第四步:使用 grep 进行关键字查询

如通过 cat dpkg.log | grep ubuntu 来查看是否由系统级升级行为

 也可以在这个文件夹中搜索关键字:

# 在 /var/log 文件夹中查看 包含“installed” 关键字的文件名和内容所在的行号
grep -r installed /var/log

第五步:  查看完日志后,退出节点并删除 Debug POD

exit

kubectl get pod

kubectl delete pod node-debugger-aks-agentpool-XXXXXXXXXXXXXXXXXXXXXXXXXXXX

命令执行示意图:

 

通过以上5步,完成查看日志并清理操作痕迹。

 

参考资料

安装 Kubernetes CLI : https://docs.azure.cn/zh-cn/aks/tutorial-kubernetes-deploy-cluster?tabs=azure-cli#install-the-kubernetes-cli

在 Windows 上安装 kubectl : https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-windows/#install-kubectl-on-windows