This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.5. 为 OpenShift Container Platform 集群节点生成 sosreport 归档
为 OpenShift Container Platform 4.11 集群节点生成 sosreport
的建议方法是通过 debug pod。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 - 您需要有到主机的 SSH 访问权限。
-
已安装 OpenShift CLI(
oc
)。 - 您有红帽标准订阅或高级订阅。
- 您有红帽客户门户网站帐户。
- 您已有一个红帽支持问题单 ID。
流程
获取集群节点列表:
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在目标节点上进入一个 debug 会话。此步骤被实例化为一个名为
<node_name>-debug
的 debug pod:oc debug node/my-cluster-node
$ oc debug node/my-cluster-node
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要在目标节点上进入带有
NoExecute
效果的 debug 会话,请向 dummy 命名空间添加一个容限,并在 dummy 命名空间中启动 debug pod:oc new-project dummy
$ oc new-project dummy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc patch namespace dummy --type=merge -p '{"metadata": {"annotations": { "scheduler.alpha.kubernetes.io/defaultTolerations": "[{\"operator\": \"Exists\"}]"}}}'
$ oc patch namespace dummy --type=merge -p '{"metadata": {"annotations": { "scheduler.alpha.kubernetes.io/defaultTolerations": "[{\"operator\": \"Exists\"}]"}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc debug node/my-cluster-node
$ oc debug node/my-cluster-node
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
/host
设置为 debug shell 中的根目录。debug pod 在 pod 中的/host
中挂载主机的 root 文件系统。将根目录改为/host
,您可以运行主机可执行路径中包含的二进制文件:chroot /host
# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意运行 Red Hat Enterprise Linux CoreOS(RHCOS)的 OpenShift Container Platform 4.11 集群节点不可变,它依赖于 Operator 来应用集群更改。不建议使用 SSH 访问集群节点。但是,如果 OpenShift Container Platform API 不可用,或 kubelet 在目标节点上无法正常工作,
oc
操作将会受到影响。在这种情况下,可以使用ssh core@<node>.<cluster_name>.<base_domain>
来访问节点。启动
toolbox
容器,其中包括运行sosreport
所需的二进制文件和插件:toolbox
# toolbox
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果一个已存在的
toolbox
pod 已在运行,则toolbox
命令会输出'toolbox-' already exists.Trying to start…
.使用podman rm toolbox-
删除正在运行的 toolbox容器,并生成新的 toolbox 容器以避免sosreport
插件出现问题。收集
sosreport
归档。运行
sosreport
命令并启用crio.all
和crio.logs
CRI-O 容器引擎sosreport
插件:sosreport -k crio.all=on -k crio.logs=on
# sosreport -k crio.all=on -k crio.logs=on
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
-k
可让您在默认值之外定义sosreport
插件参数。
- 提示后按 Enter 键继续。
-
提供红帽支持问题单 ID。
sosreport
将 ID 添加到存档的文件名中。 sosreport
输出提供了归档的位置和 checksum。以下示例输出引用支持问题单 ID01234567
: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
Your sosreport has been generated and saved in: /host/var/tmp/sosreport-my-cluster-node-01234567-2020-05-28-eyjknxt.tar.xz
1 The checksum is: 382ffc167510fd71b4f12a4f40b97a4e
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
sosreport
归档的文件路径在chroot
环境之外,因为 toolbox 容器会在/host
挂载主机的根目录。
使用以下方法之一为红帽支持提供
sosreport
归档以供分析。将文件直接从 OpenShift Container Platform 集群上传到现有红帽支持问题单。
在 toolbox 容器内,运行
redhat-support-tool
将存档直接附加到现有红帽支持问题单中。这个示例使用问题单 ID01234567
:redhat-support-tool addattachment -c 01234567 /host/var/tmp/my-sosreport.tar.xz
# redhat-support-tool addattachment -c 01234567 /host/var/tmp/my-sosreport.tar.xz
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- toolbox 容器将主机的根目录挂载到
/host
。当指定要通过redhat-support-tool
命令上传的文件时,使用 toolbox 容器的根目录(包括/host/
)的绝对路径。
将文件上传到现有红帽支持问题单中。
运行
oc debug node/<node_name>
命令调整sosreport
归档,并将输出重定向到文件中。此命令假设您已退出以前的oc debug
会话: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
$ 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
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- debug 容器将主机的根目录挂载到
/host
。在指定用于连接的目标文件时,引用 debug 容器的根目录的绝对路径,包括/host
。
注意运行 Red Hat Enterprise Linux CoreOS(RHCOS)的 OpenShift Container Platform 4.11 集群节点不可变,它依赖于 Operator 来应用集群更改。不建议使用
scp
从集群节点传输sosreport
归档。但是,如果 OpenShift Container Platform API 不可用,或 kubelet 在目标节点上无法正常工作,oc
操作将会受到影响。在这种情况下,可以通过运行scp core@<node>.<cluster_name>.<base_domain>:<file_path> <local_path>
从节点复制sosreport
归档文件。- 在红帽客户门户网站的 Customer Support 页面中进入现有的支持问题单。
- 选择 Attach files 并按提示上传该文件。