【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
问题描述
使用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
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!