如何收集Kubernetes集群的诊断信息
概述
当Kubernetes集群出现问题或者节点异常时,则需要收集Kubernetes集群的诊断信息以供数据分析使用,本文主要介绍如何收集Kubernetes集群的诊断信息。
详细信息
当Kubernetes集群出现问题或者节点异常时,您可通过阿里云容器服务ACK提供的一键故障诊断功能,辅助您定位集群中出现的问题,详情请参见通过集群故障诊断功能定位集群问题。如果还是无法满足您的需求,需要分别在Master节点和异常的Worker节点上收集Kubernetes集群的诊断信息,请您根据现场实际情况,选择下列对应的步骤:
Linux节点收集诊断信息的方法
不同节点所使用的操作系统有所限制,Worker节点可以使用Liunx系统和Windows系统,Master节点只能使用Liunx系统,以下方法同时适用Liunx系统的Master和Worker节点,该操作以Master节点为例。
- 登录Kubernetes集群的Master节点,执行以下命令,下载诊断脚本。
curl -o /usr/local/bin/diagnose_k8s.sh http://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/public/diagnose/diagnose_k8s.sh
说明:Linux节点的诊断脚本仅支持从杭州地域下载。
- 执行以下命令,给诊断脚本添加执行权限。
chmod u+x /usr/local/bin/diagnose_k8s.sh
- 执行以下命令,进入指定目录。
cd /usr/local/bin
- 执行以下命令,运行诊断脚本。
系统显示类似如下,每次执行诊断脚本,产生的日志文件名称不同,本文以diagnose_1514939155.tar.gz为例,现场以实际环境为准。diagnose_k8s.sh
...... + echo 'please get diagnose_1514939155.tar.gz for diagnostics' please get diagnose_1514939155.tar.gz for diagnostics + echo '请上传 diagnose_1514939155.tar.gz' 请上传 diagnose_1514939155.tar.gz
- 执行如下命令,查看存放集群诊断信息的文件。
ls -ltr | grep diagnose_1514939155.tar.gz
说明:将diagnose_1514939155.tar.gz替换为现场环境产生的日志文件名称。
Windows节点收集诊断信息的方法
Windows系统的Worker节点,请下载并运行diagnose诊断脚本,收集集群诊断信息,具体操作如下:
说明:Windows系统只能充当Worker节点。
- 登录异常Worker节点,打开运行窗口,输入cmd,单击确定,打开命令行工具。
- 执行以下命令,进入PowerShell模式。
powershell
系统显示类似如下。 - 执行以下命令,下载并运行诊断脚本。
Invoke-WebRequest -UseBasicParsing -Uri http://aliacs-k8s-[$Region_ID].oss-[$Region_ID].aliyuncs.com/public/pkg/windows/diagnose/diagnose.ps1 | Invoke-Expression
说明:Windows节点的诊断脚本支持从所属地域下载,请根据集群所在地域替换第4步中的[$Region_ID]。
系统显示类似如下,表示收集诊断信息成功。INFO: Compressing diagnosis clues ...
INFO: ...done
INFO: Please get diagnoses_1514939155.zip for diagnostics说明:diagnoses_1514939155.zip文件会保存在脚本执行时所在目录。
适用于
- 容器服务Kubernetes版