【Azure K8S | AKS】分享從AKS叢集的Node中檢視紀錄檔的方法(/var/log)

2023-03-16 06:01:11

問題描述

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

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