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

问题描述

使用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

获取节点的结果示意图: image.png

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

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

image.png

第三步:chroot /host 提升权限 

## 提升权限 
chroot /host

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

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

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

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

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

image.png

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

exit

kubectl get pod

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

命令执行示意图: image.png

通过以上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

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

分类: 【Azure K8S | AKS】

标签: AKS日志查看方式chroot /hostkubectl debug node/-it --image=mcr.azk8s.cn/dotnet/runtime-deps:6.0Azure K8SAKSAzure Kubernetes Service