問題描述
使用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