问题描述
如何从AKS的VMSS集群中收集实例日志?
参考步骤
第一步:登陆VMSS实例
参考官网步骤:使用 SSH 连接到 Azure Kubernetes 服务 (AKS) 群集节点以进行维护或故障排除: https://docs.azure.cn/zh-cn/aks/ssh#configure-virtual-machine-scale-set-based-aks-clusters-for-ssh-access
示例 az CLI 脚本:
az login az account set --subscription <subscription id> az aks get-credentials --resource-group <resource group> --name <aks name> kubectl get nodes -o wide kubectl debug node/aks-XXXXXXXXXXXXXXXXXXXXXXXXXXXX -it --image=mcr.azk8s.cn/aks/fundamental/base-ubuntu:v0.0.11
第二步:收集日志文件并打包到 /tmp/logsCollection/logsCollection.tgz
cd /tmp/
mkdir logsCollection
journalctl -u kubelet > logsCollection/kubelet.log date > logsCollection/dateOutput.txt last > logsCollection/lastOutput.txt
cp -r /var/log/* /tmp/logsCollection/
ll /tmp/logsCollection/
tar zcvf logsCollection.tgz logsCollection/*
sudo chown azureuser:azureuser logsCollection.tgz
如果遇见 journalctl 没有日志,可以参考博文:
- No journal files were found : https://www.cnblogs.com/dream397/p/14061295.html
- bash: vi: command not found
vi systemd-journald.service
#bash: vi: command not found apt-get install vim
// 第一次安装 vim 失败,升级 apt-get apt-get update apt-get install vim
第三步:使用 scp 拷贝日志到AKS-SSH POD(?)
- 使用 exit 退出VMSS实例的SSH session
- 返回到aks-ssh pod.
- 使用scp命令将打包日志拷出到aks-ssh pod (AKS 节点的默认用户名为 azureuser)
scp -i id_rsa azureuser@10.*.*.*:/tmp/logsCollection.tgz .
第四步:拷贝到本地(?)
- 重新打开一个新的未连接到该pod的终端窗口
- 在新窗口中使用kubectl cp命令将文件从aks-ssh pod拷贝到本地
kubectl cp aks-ssh:/logsCollection.tgz logsCollection.tgz
参考资料
使用 SSH 连接到 Azure Kubernetes 服务 (AKS) 群集节点以进行维护或故障排除 : https://docs.azure.cn/zh-cn/aks/ssh#configure-virtual-machine-scale-set-based-aks-clusters-for-ssh-access
标签:AKS,VMSS,aks,ssh,logsCollection,Azure,日志,tgz From: https://www.cnblogs.com/lulight/p/17556766.html