如何收集Kubernetes集群的诊断信息

概述

当Kubernetes集群出现问题或者节点异常时,则需要收集Kubernetes集群的诊断信息以供数据分析使用,本文主要介绍如何收集Kubernetes集群的诊断信息。

详细信息

当Kubernetes集群异常时,只需要在Master节点上收集Kubernetes集群的诊断信息。若Worker节点异常时,则需要分别在Master节点和异常的Worker节点上收集Kubernetes集群的诊断信息。请根据现场实际情况,选择下列对应的步骤:

Master节点收集诊断信息的方法

不同节点所使用的操作系统有所限制,Worker节点可以使用Liunx系统和Windows系统,Master节点只能使用Liunx系统,以下方法同时适用Liunx系统的Master和Worker节点,该操作以Master节点为例。

  1. 登录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节点的诊断脚本仅支持从杭州地域下载。
  2. 执行以下命令,给诊断脚本添加执行权限。
    chmod u+x /usr/local/bin/diagnose_k8s.sh
  3. 执行以下命令,进入指定目录。
    cd /usr/local/bin
  4. 执行以下命令,运行诊断脚本。
    diagnose_k8s.sh
    系统显示类似如下,每次执行诊断脚本,产生的日志文件名称不同,本文以diagnose_1514939155.tar.gz为例,现场以实际环境为准。
    ......
    + 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
  5. 执行如下命令,查看存放集群诊断信息的文件。
    ls -ltr | grep diagnose_1514939155.tar.gz
    说明:将diagnose_1514939155.tar.gz替换为现场环境产生的日志文件名称。

Worker节点收集诊断信息的方法

请确认您的Worker节点所使用的操作系统类型,然后选择下列对应的步骤:

  • Liunx系统的Worker节点:请参见Master节点收集诊断信息的方法,收集集群诊断信息。
  • Windows系统的Worker节点:请参见下列步骤,下载并运行diagnose诊断脚本,收集集群诊断信息。
    说明:Windows系统只能充当Worker节点。
  1. 登录异常Worker节点,打开运行窗口,输入cmd,单击确定,打开命令行工具。
  2. 执行以下命令,进入PowerShell模式。
    powershell
    系统显示类似如下。
    {22BA55BB-00B9-416C-8E47-8725FF6C817A}_20200611114621.jpg
  3. 执行以下命令,下载并运行诊断脚本。
    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版