获取有关您集群的帮助和支持

查找支持选项、故障排除资源以及获取集群帮助的方法。

在打开支持案例之前,请收集有关集群环境的相关信息。

寻找诊断和调试工具? 该插件已不再受支持。 IBM Cloud Monitoring 建议用于监控和诊断群集中的问题。 其他可能相关的故障排除链接包括:对处于临界或 NotReady 状态的工作节点进行故障排除,以及对 IBM Cloud Kubernetes Service 中的应用程序进行故障排除。

获取群组详情

  1. 获取集群详细信息。

    ibmcloud oc cluster get -c CLUSTER_NAME_OR_ID
    
  2. 如果问题涉及工作程序节点,请获取工作程序节点详细信息。

    1. 列出集群中的所有工作程序节点,并记下处于不正常 状态 或 状态的任何工作程序节点的 标识。
        ibmcloud oc worker ls -c CLUSTER_NAME_OR_ID
        ```
    2. 获取运行状况不佳的工作程序节点的详细信息。
    
    ```sh {: pre}
        ibmcloud oc worker get -w WORKER_ID -c CLUSTER_NAME_OR_ID
        ```
    
  3. 对于集群中资源 (例如 pod 或服务) 的问题,请登录到集群并使用 Kubernetes API 来获取有关这些资源的更多信息。

收集错误日志和其他信息

运行 must-gather 命令

oc adm must-gather CLI 命令收集群集信息,用于调试问题。 该工具必须收集资源定义、服务日志等。 请注意,审计日志不作为默认信息集的一部分收集,以减小文件的大小。

运行 oc adm must-gather 时,会在群集上的一个新项目中创建一个名称随机的新 pod。 数据在该 pod 上收集,并保存在一个以 must-gather.local 开头的新目录中。

请查看以下示例命令。

oc adm must-gather

示例命令,要收集与一个或多个特定特征相关的数据,请使用 --image 参数和特定图像。

oc adm must-gather \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.17.5

收集审计日志的示例命令。

oc adm must-gather -- /usr/bin/gather_audit_logs

在特定命名空间中运行 must-gather 的示例命令。

oc adm must-gather --run-namespace NAMESPACE \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.17.5

收集特定时间日志的示例命令。

oc adm must-gather --since=24h
oc adm must-gather --since-time=$(date -d '-24 hours' +%Y-%m-%dT%T.%9N%:z )

收集网络日志的示例命令。

oc adm must-gather -- gather_network_logs

如需更多示例和参数,请运行以下命令

oc adm must-gather -h

从必须收集目录创建压缩文件的示例命令。

tar cvaf must-gather.tar.gz must-gather.local.5421342344627712289/

将压缩文件附在您的支持案例中。

收集 SOS 报告

sosreport 是一款从 (RHEL) 和 (RHCOS) 系统中收集配置详情、系统信息和诊断数据的工具。Red Hat Enterprise Linux Red Hat Enterprise Linux CoreOS 它提供了一种收集与节点有关的诊断信息的标准化方法,可将这些信息提供给支持人员进行问题诊断。

在某些支持交互中,支持人员可能会要求您收集特定 OpenShift Container Platform 节点的 sosreport 存档。 例如,可能需要查看 oc adm must-gather 输出中未包含的系统日志或其他特定节点数据。

收集 sosreport 的方法因工作节点的操作系统而异。 RHCOS 节点使用 toolbox 命令。 RHEL 8 和 RHEL 9 节点不支持 toolbox``;请改用 Red Hat 该 sosreport 脚本。

为 OpenShift Container Platform 集群节点生成 sosreport 的推荐方法是通过调试 pod。

访问 Red Hat OpenShift 集群。

  1. 请列出您的工作节点,以便确定目标节点及其操作系统。

    oc get nodes -o wide
    

    请记下您要从中收集 sosreport 的 worker 节点的名称。 OS-IMAGE 列用于指示该节点运行的是 RHCOS 还是 RHEL。

  2. 在目标节点上启动一个调试会话。

    oc debug node/node_name
    

    要在受 NoExecute 影响的目标节点上进入调试会话,可在临时命名空间中添加容忍度,并在临时命名空间中启动调试 pod。

    oc new-project temp oc patch namespace temp --type=merge -p '{"metadata": {"annotations": { "scheduler.alpha.kubernetes.io/defaultTolerations": "[{\"operator\": \"Exists\"}]"}}}'
    
    oc debug node/my-cluster-node
    
  3. 将 /host 设置为调试 shell 的根目录。 调试 Pod 将主机的根文件系统挂载到 Pod 内的 /host 目录下。 通过将根目录更改为 /host,您可以运行主机可执行路径中包含的二进制文件。

    chroot /host
    

    OpenShift Container Platform 运行 Red Hat Enterprise LinuxCoreOS (RHCOS)的集群节点不可变,依赖Operators来应用集群变更。 不建议使用 SSH 访问群集节点。 然而,如果目标节点上无法使用 OpenShift Container Platform API,或kubelet运行异常,则可能影响oc操作。 在这种情况下,可以改用 ssh core@NODE.CLUSTER_NAME.BASE_DOMAIN 访问节点。

  4. 请根据工作节点的操作系统,采用相应的方法收集 sosreport。

    • RHCOS 节点:请使用 toolbox 命令。

      1. 启动工具箱容器,其中包括运行 sosreport 所需的二进制文件和插件。 toolbox 命令仅在RHCOS节点上受支持。

        toolbox
        

        如果现有的工具箱 pod 已在运行,则工具箱命令会输出 'toolbox-' already exists. Trying to start…. 删除正在运行的工具箱容器( podman rm toolbox- ),并启动一个新的工具箱容器。

      2. 运行 sos report 命令并按照提示收集故障排除数据。

        sos report -k crio.all=on -k crio.logs=on -k podman.all=on -k podman.logs=on
        

        在报告中包含节点的 OVN- Kubernetes 网络配置信息的示例命令。

        sos report --all-logs
        

        sosreport 的输出结果会显示归档文件的位置和校验和。 以下示例输出引用了支持案例 ID 01234567。 该文件路径位于 chroot 环境之外,因为工具箱容器将主机的根目录挂载到了 /host。

        Your sosreport has been generated and saved in:
        /host/var/tmp/sosreport-my-cluster-node-01234567-2020-05-28-eyjknxt.tar.xz
        The checksum is: 382ffc167510fd71b4f12a4f40b97a4e
        
    • RHEL 8 和 RHEL 9 节点:RHEL 节点不支持 toolbox 命令。 请改用 Red Hat 中的sosreport收集脚本。

      1. 请按照 知识库文章 Red Hat 中的说明,下载并运行 Red Hat 的sosreport脚本。

      2. 请按照脚本中的提示收集故障排除数据。 请根据脚本输出信息,记下生成的压缩文件的位置。

  5. 将 sosreport 输出到文件。

    调试容器将主机的根目录挂载到了 /host。 在指定待拼接的目标文件时,请以调试容器的根目录为基准,使用包含 /host 的绝对路径。

    oc debug node/my-cluster-node -- bash -c 'cat /host/var/tmp/sosreport-my-cluster-node-01234567-2020-05-28-eyjknxt.tar.xz' > /tmp/sosreport-my-cluster-node-01234567-2020-05-28-eyjknxt.tar.xz
    

    OpenShift Container Platform 运行 Red Hat Enterprise LinuxCoreOS (RHCOS)的集群节点不可变,依赖Operators来应用集群变更。 不建议使用 scp 从群集节点传输 sosreport 存档。 然而,如果目标节点上无法使用 OpenShift Container Platform API,或kubelet运行异常,oc 则操作可能会受到影响。 在这种情况下,可以通过运行 scp core@<node>.<cluster_name>.<base_domain>:<file_path> <local_path> 从节点复制 sosreport 存档。

  6. 将文件上传到您的支持案例。

打开支持案例

  1. 通过 打开案例来联系 IBM 支持人员。

  2. 对于 问题类型,搜索或选择 Red Hat OpenShift on IBM Cloud。

  3. 对于 案例详细信息,请提供描述性标题并包含先前收集的详细信息。 从 资源中,您还可以选择与问题相关的集群。

  4. 尽可能具体,包括您认为可以帮助 IBM 支持人员对问题进行故障诊断的体系结构图或补充材料。