$ oc adm must-gather \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.17.3
您可以使用以下工具获取有关您的 Red Hat OpenShift Service on AWS 集群的调试信息。
oc adm must-gather
CLI 命令收集集群中可能需要用于调试问题的信息,包括
资源定义
服务日志
默认情况下,oc adm must-gather
命令使用默认插件镜像并将数据写入 `./must-gather.local`。
或者,您可以使用以下部分中描述的适当参数运行该命令来收集特定信息
要收集与一个或多个特定功能相关的数据,请使用带有镜像的 `--image` 参数,如下面部分列出。
例如
$ oc adm must-gather \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.17.3
要收集审计日志,请使用 `-- /usr/bin/gather_audit_logs` 参数,如下面部分所述。
例如
$ oc adm must-gather -- /usr/bin/gather_audit_logs
为减小文件大小,审计日志不会作为默认信息集的一部分进行收集。 |
运行 `oc adm must-gather` 时,会在集群上的新项目中创建一个具有随机名称的新 Pod。数据在该 Pod 上收集,并保存在当前工作目录中以 `must-gather.local` 开头的新的目录中。
例如
NAMESPACE NAME READY STATUS RESTARTS AGE
...
openshift-must-gather-5drcj must-gather-bklx4 2/2 Running 0 72s
openshift-must-gather-5drcj must-gather-s8sdh 2/2 Running 0 72s
...
或者,您可以使用 `--run-namespace` 选项在特定命名空间中运行 `oc adm must-gather` 命令。
例如
$ oc adm must-gather --run-namespace <namespace> \
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.17.3
您可以使用 `oc adm must-gather` CLI 命令收集有关您的集群的调试信息。
您可以作为具有 `cluster-admin` 角色的用户访问集群。
已安装 OpenShift CLI (oc
)。
导航到要存储 `must-gather` 数据的目录。
运行 `oc adm must-gather` 命令
$ oc adm must-gather
因为此命令默认选择一个随机的控制平面节点,所以 Pod 可能会调度到处于 `NotReady` 和 `SchedulingDisabled` 状态的控制平面节点。 |
如果此命令失败(例如,如果无法在集群上调度 Pod),请使用 `oc adm inspect` 命令来收集特定资源的信息。
请联系 Red Hat 支持以获取建议收集的资源。 |
从刚刚在工作目录中创建的 `must-gather` 目录创建一个压缩文件。例如,在使用 Linux 操作系统的计算机上,运行以下命令
$ tar cvaf must-gather.tar.gz must-gather.local.5421342344627712289/ (1)
1 | 请务必将 `must-gather-local.5421342344627712289/` 替换为实际的目录名称。 |
将压缩文件附加到 Red Hat 客户门户网站的 客户支持页面 上的支持案例中。
下表列出了可与 `oc adm must-gather` 命令一起使用的标志。
标志 | 示例命令 | 描述 |
---|---|---|
|
|
使用默认镜像为集群上所有用 `operators.openshift.io/must-gather-image` 注释的 Operator 收集 `must-gather` 数据。 |
|
|
设置本地计算机上用于写入收集数据的特定目录。 |
|
|
将 |
|
|
指定要运行的 |
|
|
使用包含要运行的 |
|
|
设置要使用的特定节点。如果未指定,则默认使用随机主节点。 |
|
|
设置要使用的特定节点选择器。仅当指定需要同时捕获一组集群节点上数据的命令和镜像时才相关。 |
|
|
|
|
|
仅返回比指定持续时间新的日志。默认为所有日志。鼓励但不要求插件支持此功能。只能使用一个 |
|
|
仅返回特定日期和时间(以 (RFC3339) 格式表示)之后的日志。默认为所有日志。鼓励但不要求插件支持此功能。只能使用一个 |
|
|
设置 pod 上用于复制收集数据的特定目录。 |
|
|
收集数据并在超时前的时间长度,以秒、分钟或小时表示,例如 3s、5m 或 2h。指定的时间必须大于零。如果未指定,则默认为 10 分钟。 |
|
|
指定可用于 |
您可以使用带有--image
或--image-stream
参数的oc adm must-gather
CLI 命令来收集有关特定功能的调试信息。must-gather
工具支持多个镜像,因此您可以通过运行单个命令来收集有关多个功能的数据。
镜像 | 用途 |
---|---|
|
OpenShift Virtualization 的数据收集。 |
|
OpenShift Serverless 的数据收集。 |
|
Red Hat OpenShift Service Mesh 的数据收集。 |
|
容器迁移工具包的数据收集。 |
|
日志记录的数据收集。 |
|
网络可观测性操作符的数据收集。 |
|
OpenShift 共享资源 CSI 驱动程序的数据收集。 |
|
Red Hat OpenShift GitOps 的数据收集。 |
|
Secrets Store CSI 驱动程序操作符的数据收集。 |
要确定 Red Hat OpenShift Service on AWS 组件镜像的最新版本,请参阅 Red Hat 客户门户网站上的 OpenShift 运算符生命周期 网页。 |
您可以作为具有 `cluster-admin` 角色的用户访问集群。
已安装 OpenShift CLI (oc
)。
导航到要存储 `must-gather` 数据的目录。
使用一个或多个--image
或--image-stream
参数运行oc adm must-gather
命令。
|
例如,以下命令同时收集默认的集群数据和与 OpenShift Virtualization 相关的特定信息
$ oc adm must-gather \
--image-stream=openshift/must-gather \ (1)
--image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel9:v4.17.3 (2)
1 | Red Hat OpenShift Service on AWS 的默认 must-gather 镜像 |
2 | OpenShift Virtualization 的 must-gather 镜像 |
您可以使用带有其他参数的must-gather
工具来收集与集群中的 OpenShift Logging 和 Red Hat OpenShift Logging Operator 特别相关的数据。对于 OpenShift Logging,请运行以下命令
$ oc adm must-gather --image=$(oc -n openshift-logging get deployment.apps/cluster-logging-operator \
-o jsonpath='{.spec.template.spec.containers[?(@.name == "cluster-logging-operator")].image}')
must-gather
输出├── cluster-logging
│ ├── clo
│ │ ├── cluster-logging-operator-74dd5994f-6ttgt
│ │ ├── clusterlogforwarder_cr
│ │ ├── cr
│ │ ├── csv
│ │ ├── deployment
│ │ └── logforwarding_cr
│ ├── collector
│ │ ├── fluentd-2tr64
│ ├── eo
│ │ ├── csv
│ │ ├── deployment
│ │ └── elasticsearch-operator-7dc7d97b9d-jb4r4
│ ├── es
│ │ ├── cluster-elasticsearch
│ │ │ ├── aliases
│ │ │ ├── health
│ │ │ ├── indices
│ │ │ ├── latest_documents.json
│ │ │ ├── nodes
│ │ │ ├── nodes_stats.json
│ │ │ └── thread_pool
│ │ ├── cr
│ │ ├── elasticsearch-cdm-lp8l38m0-1-794d6dd989-4jxms
│ │ └── logs
│ │ ├── elasticsearch-cdm-lp8l38m0-1-794d6dd989-4jxms
│ ├── install
│ │ ├── co_logs
│ │ ├── install_plan
│ │ ├── olmo_logs
│ │ └── subscription
│ └── kibana
│ ├── cr
│ ├── kibana-9d69668d4-2rkvz
├── cluster-scoped-resources
│ └── core
│ ├── nodes
│ │ ├── ip-10-0-146-180.eu-west-1.compute.internal.yaml
│ └── persistentvolumes
│ ├── pvc-0a8d65d9-54aa-4c44-9ecc-33d9381e41c1.yaml
├── event-filter.html
├── gather-debug.log
└── namespaces
├── openshift-logging
│ ├── apps
│ │ ├── daemonsets.yaml
│ │ ├── deployments.yaml
│ │ ├── replicasets.yaml
│ │ └── statefulsets.yaml
│ ├── batch
│ │ ├── cronjobs.yaml
│ │ └── jobs.yaml
│ ├── core
│ │ ├── configmaps.yaml
│ │ ├── endpoints.yaml
│ │ ├── events
│ │ │ ├── elasticsearch-im-app-1596020400-gm6nl.1626341a296c16a1.yaml
│ │ │ ├── elasticsearch-im-audit-1596020400-9l9n4.1626341a2af81bbd.yaml
│ │ │ ├── elasticsearch-im-infra-1596020400-v98tk.1626341a2d821069.yaml
│ │ │ ├── elasticsearch-im-app-1596020400-cc5vc.1626341a3019b238.yaml
│ │ │ ├── elasticsearch-im-audit-1596020400-s8d5s.1626341a31f7b315.yaml
│ │ │ ├── elasticsearch-im-infra-1596020400-7mgv8.1626341a35ea59ed.yaml
│ │ ├── events.yaml
│ │ ├── persistentvolumeclaims.yaml
│ │ ├── pods.yaml
│ │ ├── replicationcontrollers.yaml
│ │ ├── secrets.yaml
│ │ └── services.yaml
│ ├── openshift-logging.yaml
│ ├── pods
│ │ ├── cluster-logging-operator-74dd5994f-6ttgt
│ │ │ ├── cluster-logging-operator
│ │ │ │ └── cluster-logging-operator
│ │ │ │ └── logs
│ │ │ │ ├── current.log
│ │ │ │ ├── previous.insecure.log
│ │ │ │ └── previous.log
│ │ │ └── cluster-logging-operator-74dd5994f-6ttgt.yaml
│ │ ├── cluster-logging-operator-registry-6df49d7d4-mxxff
│ │ │ ├── cluster-logging-operator-registry
│ │ │ │ └── cluster-logging-operator-registry
│ │ │ │ └── logs
│ │ │ │ ├── current.log
│ │ │ │ ├── previous.insecure.log
│ │ │ │ └── previous.log
│ │ │ ├── cluster-logging-operator-registry-6df49d7d4-mxxff.yaml
│ │ │ └── mutate-csv-and-generate-sqlite-db
│ │ │ └── mutate-csv-and-generate-sqlite-db
│ │ │ └── logs
│ │ │ ├── current.log
│ │ │ ├── previous.insecure.log
│ │ │ └── previous.log
│ │ ├── elasticsearch-cdm-lp8l38m0-1-794d6dd989-4jxms
│ │ ├── elasticsearch-im-app-1596030300-bpgcx
│ │ │ ├── elasticsearch-im-app-1596030300-bpgcx.yaml
│ │ │ └── indexmanagement
│ │ │ └── indexmanagement
│ │ │ └── logs
│ │ │ ├── current.log
│ │ │ ├── previous.insecure.log
│ │ │ └── previous.log
│ │ ├── fluentd-2tr64
│ │ │ ├── fluentd
│ │ │ │ └── fluentd
│ │ │ │ └── logs
│ │ │ │ ├── current.log
│ │ │ │ ├── previous.insecure.log
│ │ │ │ └── previous.log
│ │ │ ├── fluentd-2tr64.yaml
│ │ │ └── fluentd-init
│ │ │ └── fluentd-init
│ │ │ └── logs
│ │ │ ├── current.log
│ │ │ ├── previous.insecure.log
│ │ │ └── previous.log
│ │ ├── kibana-9d69668d4-2rkvz
│ │ │ ├── kibana
│ │ │ │ └── kibana
│ │ │ │ └── logs
│ │ │ │ ├── current.log
│ │ │ │ ├── previous.insecure.log
│ │ │ │ └── previous.log
│ │ │ ├── kibana-9d69668d4-2rkvz.yaml
│ │ │ └── kibana-proxy
│ │ │ └── kibana-proxy
│ │ │ └── logs
│ │ │ ├── current.log
│ │ │ ├── previous.insecure.log
│ │ │ └── previous.log
│ └── route.openshift.io
│ └── routes.yaml
└── openshift-operators-redhat
├── ...
使用一个或多个--image
或--image-stream
参数运行oc adm must-gather
命令。例如,以下命令同时收集默认的集群数据和与 KubeVirt 相关的特定信息
$ oc adm must-gather \
--image-stream=openshift/must-gather \ (1)
--image=quay.io/kubevirt/must-gather (2)
1 | Red Hat OpenShift Service on AWS 的默认 must-gather 镜像 |
2 | KubeVirt 的 must-gather 镜像 |
从刚刚在工作目录中创建的 `must-gather` 目录创建一个压缩文件。例如,在使用 Linux 操作系统的计算机上,运行以下命令
$ tar cvaf must-gather.tar.gz must-gather.local.5421342344627712289/ (1)
1 | 请务必将 `must-gather-local.5421342344627712289/` 替换为实际的目录名称。 |
将压缩文件附加到 Red Hat 客户门户网站的 客户支持页面 上的支持案例中。
您可以收集集群中所有节点上的网络日志。
使用--gather_network_logs
运行oc adm must-gather
命令
$ oc adm must-gather -- gather_network_logs
默认情况下, |
从刚刚在工作目录中创建的 `must-gather` 目录创建一个压缩文件。例如,在使用 Linux 操作系统的计算机上,运行以下命令
$ tar cvaf must-gather.tar.gz must-gather.local.472290403699006248 (1)
1 | 将must-gather-local.472290403699006248 替换为实际的目录名。 |
将压缩文件附加到 Red Hat 客户门户网站的 客户支持页面 上的支持案例中。
使用oc adm must-gather
命令收集数据时,信息的默认最大存储空间为容器存储容量的 30%。达到 30% 的限制后,容器将被终止,收集过程将停止。已收集的信息将下载到您的本地存储。要再次运行 must-gather 命令,您需要一个具有更多存储容量的容器或调整最大卷百分比。
如果容器达到存储限制,则会生成类似于以下示例的错误消息。
Disk usage exceeds the volume percentage of 30% for mounted directory. Exiting...
您可以作为具有 `cluster-admin` 角色的用户访问集群。
已安装 OpenShift CLI (oc
)。
使用volume-percentage
标志运行oc adm must-gather
命令。新值不能超过 100。
$ oc adm must-gather --volume-percentage <storage_percentage>
向 Red Hat 支持团队提供信息时,提供集群的唯一标识符非常有用。您可以使用 AWS Web 控制台上的 Red Hat OpenShift 服务自动填充集群 ID。您也可以使用 Web 控制台或 OpenShift CLI(oc
)手动获取集群 ID。
您可以作为具有 dedicated-admin
角色的用户访问集群。
您可以访问 Web 控制台或已安装 OpenShift CLI(oc
)。
要使用OpenShift 集群管理器手动获取您的集群 ID
导航到**集群列表**。
点击您需要为其打开支持案例的集群名称。
在**概述**选项卡的**详细信息**部分的**集群 ID**字段中查找该值。
要使用 Web 控制台打开支持案例并自动填充集群 ID
从工具栏导航到(?) 帮助,然后从列表中选择分享反馈。
在告诉我们您的体验窗口中点击打开支持案例。
要使用 Web 控制台手动获取您的集群 ID
导航到主页 → 概述。
该值可在**详细信息**部分的**集群 ID**字段中找到。
要使用 OpenShift CLI(oc
)获取您的集群 ID,请运行以下命令
$ oc get clusterversion -o jsonpath='{.items[].spec.clusterID}{"\n"}'
您可以收集单个集群节点上的 journald
单元日志以及 /var/log
中的其他日志。
您可以作为具有 `cluster-admin` 角色的用户访问集群。
您已安装 OpenShift CLI(oc
)。
查询 AWS 集群节点上 Red Hat OpenShift 服务的 kubelet
journald
单元日志。以下示例仅查询控制平面节点
$ oc adm node-logs --role=master -u kubelet (1)
1 | 根据需要替换 kubelet 以查询其他单元日志。 |
从集群节点上的 /var/log/
下的特定子目录收集日志。
检索 /var/log/
子目录中包含的日志列表。以下示例列出所有控制平面节点上的 /var/log/openshift-apiserver/
中的文件
$ oc adm node-logs --role=master --path=openshift-apiserver
检查 /var/log/
子目录中的特定日志。以下示例输出所有控制平面节点上的 /var/log/openshift-apiserver/audit.log
内容
$ oc adm node-logs --role=master --path=openshift-apiserver/audit.log
收集网络跟踪(以数据包捕获记录的形式)可以帮助 Red Hat 支持团队排查网络问题。
AWS 上的 Red Hat OpenShift 服务支持两种执行网络跟踪的方法。查看下表并选择满足您需求的方法。
方法 | 优势和功能 |
---|---|
收集主机网络跟踪 |
您可以在一个或多个节点上同时执行您指定持续时间的包捕获。当满足指定的持续时间时,包捕获文件将从节点传输到客户端机器。 您可以排查为什么特定操作会触发网络通信问题。运行包捕获,执行触发问题的操作,然后使用日志诊断问题。 |
从 AWS 节点或容器上的 Red Hat OpenShift 服务收集网络跟踪 |
您在一个节点或一个容器上执行包捕获。您以交互方式运行 您可以手动启动包捕获,触发网络通信问题,然后手动停止包捕获。 此方法使用 |
有时,通过跟踪网络通信并在多个节点上同时捕获数据包来简化网络相关问题的排查。
您可以结合使用 oc adm must-gather
命令和 registry.redhat.io/openshift4/network-tools-rhel8
容器镜像来从节点收集数据包捕获。分析数据包捕获可以帮助您排查网络通信问题。
oc adm must-gather
命令用于在特定节点上的 Pod 中运行 tcpdump
命令。tcpdump
命令记录 Pod 中的数据包捕获。当 tcpdump
命令退出时,oc adm must-gather
命令将包含数据包捕获的文件从 Pod 传输到您的客户端机器。
以下步骤中的示例命令演示了使用 |
您已以具有 cluster-admin
角色的用户身份登录到 AWS 上的 Red Hat OpenShift 服务。
您已安装 OpenShift CLI(oc
)。
通过运行以下命令,从某些节点的主机网络运行数据包捕获
$ oc adm must-gather \
--dest-dir /tmp/captures \ (1)
--source-dir '/tmp/tcpdump/' \ (2)
--image registry.redhat.io/openshift4/network-tools-rhel8:latest \ (3)
--node-selector 'node-role.kubernetes.io/worker' \ (4)
--host-network=true \ (5)
--timeout 30s \ (6)
-- \
tcpdump -i any \ (7)
-w /tmp/tcpdump/%Y-%m-%dT%H:%M:%S.pcap -W 1 -G 300
1 | --dest-dir 参数指定 oc adm must-gather 将数据包捕获存储在客户端机器上相对于 /tmp/captures 的目录中。您可以指定任何可写目录。 |
2 | 当在 oc adm must-gather 启动的调试 Pod 中运行 tcpdump 时,--source-dir 参数指定数据包捕获临时存储在 Pod 上的 /tmp/tcpdump 目录中。 |
3 | --image 参数指定包含 tcpdump 命令的容器镜像。 |
4 | --node-selector 参数和示例值指定在工作节点上执行数据包捕获。或者,您可以改为指定 --node-name 参数以在一个节点上运行数据包捕获。如果您同时省略 --node-selector 和 --node-name 参数,则会在所有节点上执行数据包捕获。 |
5 | 需要 --host-network=true 参数,以便在节点的网络接口上执行数据包捕获。 |
6 | --timeout 参数和值指定调试 Pod 运行 30 秒。如果您没有指定 --timeout 参数和持续时间,则调试 Pod 将运行 10 分钟。 |
7 | tcpdump 命令的 -i any 参数指定在所有网络接口上捕获数据包。或者,您可以指定网络接口名称。 |
执行触发网络通信问题的操作(例如访问 Web 应用程序),同时网络跟踪捕获数据包。
查看 oc adm must-gather
从 Pod 传输到客户端机器的数据包捕获文件
tmp/captures
├── event-filter.html
├── ip-10-0-192-217-ec2-internal (1)
│ └── registry-redhat-io-openshift4-network-tools-rhel8-sha256-bca...
│ └── 2022-01-13T19:31:31.pcap
├── ip-10-0-201-178-ec2-internal (1)
│ └── registry-redhat-io-openshift4-network-tools-rhel8-sha256-bca...
│ └── 2022-01-13T19:31:30.pcap
├── ip-...
└── timestamp
1 | 数据包捕获存储在标识主机名、容器和文件名的目录中。如果您没有指定 --node-selector 参数,则主机名的目录级别不存在。 |
在调查 Red Hat OpenShift Service on AWS 的潜在网络问题时,Red Hat 支持团队可能会要求您提供来自特定 Red Hat OpenShift Service on AWS 集群节点或特定容器的网络数据包跟踪。在 Red Hat OpenShift Service on AWS 中捕获网络跟踪的推荐方法是通过调试 Pod。
您可以作为具有 `cluster-admin` 角色的用户访问集群。
您已安装 OpenShift CLI(oc
)。
您已拥有现有的 Red Hat 支持案例 ID。
获取集群节点列表
$ oc get nodes
进入目标节点的调试会话。此步骤会实例化一个名为 <node_name>-debug
的调试 Pod。
$ oc debug node/my-cluster-node
将 /host
设置为调试 shell 中的根目录。调试 Pod 将主机的根文件系统挂载到 Pod 内的 /host
。通过将根目录更改为 /host
,您可以运行主机可执行路径中包含的二进制文件。
# chroot /host
在 chroot
环境控制台中,获取节点的接口名称。
# ip ad
启动一个 toolbox
容器,其中包含运行 sosreport
所需的二进制文件和插件。
# toolbox
如果已存在运行的 |
在集群节点上启动 tcpdump
会话并将输出重定向到捕获文件。此示例使用 ens5
作为接口名称。
$ tcpdump -nn -s 0 -i ens5 -w /host/var/tmp/my-cluster-node_$(date +%d_%m_%Y-%H_%M_%S-%Z).pcap (1)
1 | tcpdump 捕获文件的路径位于 chroot 环境之外,因为 toolbox 容器将主机的根目录挂载到 /host 。 |
如果需要针对节点上的特定容器进行 tcpdump
捕获,请按照以下步骤操作。
确定目标容器 ID。由于 toolbox 容器将主机的根目录挂载到 /host
,因此此步骤中 chroot host
命令位于 crictl
命令之前。
# chroot /host crictl ps
确定容器的进程 ID。在此示例中,容器 ID 为 a7fe32346b120
。
# chroot /host crictl inspect --output yaml a7fe32346b120 | grep 'pid' | awk '{print $2}'
在容器上启动 tcpdump
会话并将输出重定向到捕获文件。此示例使用 49628
作为容器的进程 ID,并使用 ens5
作为接口名称。nsenter
命令进入目标进程的命名空间并在其命名空间中运行命令。因为此示例中的目标进程是容器的进程 ID,所以 tcpdump
命令是在主机的容器命名空间中运行的。
# nsenter -n -t 49628 -- tcpdump -nn -i ens5 -w /host/var/tmp/my-cluster-node-my-container_$(date +%d_%m_%Y-%H_%M_%S-%Z).pcap (1)
1 | tcpdump 捕获文件的路径位于 chroot 环境之外,因为 toolbox 容器将主机的根目录挂载到 /host 。 |
使用以下方法之一,将 tcpdump
捕获文件提供给 Red Hat 支持团队进行分析。
直接从 Red Hat OpenShift Service on AWS 集群将文件上传到现有的 Red Hat 支持案例。
在 toolbox 容器内,运行 redhat-support-tool
将文件直接附加到现有的 Red Hat 支持案例。此示例使用支持案例 ID 01234567
。
# redhat-support-tool addattachment -c 01234567 /host/var/tmp/my-tcpdump-capture-file.pcap (1)
1 | toolbox 容器将主机的根目录挂载到 /host 。在指定要通过 redhat-support-tool 命令上传的文件时,请参考从 toolbox 容器根目录的绝对路径,包括 /host/ 。 |
将文件上传到现有的 Red Hat 支持案例。
通过运行 oc debug node/<node_name>
命令连接 sosreport
归档文件并将输出重定向到文件。此命令假设您已退出之前的 oc debug
会话。
$ oc debug node/my-cluster-node -- bash -c 'cat /host/var/tmp/my-tcpdump-capture-file.pcap' > /tmp/my-tcpdump-capture-file.pcap (1)
1 | 调试容器将主机的根目录挂载到 /host 。在指定要连接的目标文件时,请参考从调试容器根目录的绝对路径,包括 /host 。 |
在 Red Hat 客户门户的 客户支持页面中导航到现有的支持案例。
选择附加文件,然后按照提示上传文件。
在调查 Red Hat OpenShift Service on AWS 问题时,Red Hat 支持团队可能会要求您将诊断数据上传到支持案例。可以通过 Red Hat 客户门户或直接使用 redhat-support-tool
命令从 Red Hat OpenShift Service on AWS 集群将文件上传到支持案例。
您可以作为具有 `cluster-admin` 角色的用户访问集群。
您已安装 OpenShift CLI(oc
)。
您已拥有现有的 Red Hat 支持案例 ID。
通过 Red Hat 客户门户将诊断数据上传到现有的 Red Hat 支持案例。
使用 oc debug node/<node_name>
命令连接 Red Hat OpenShift Service on AWS 节点上的诊断文件并将输出重定向到文件。以下示例将 /host/var/tmp/my-diagnostic-data.tar.gz
从调试容器复制到 /var/tmp/my-diagnostic-data.tar.gz
。
$ oc debug node/my-cluster-node -- bash -c 'cat /host/var/tmp/my-diagnostic-data.tar.gz' > /var/tmp/my-diagnostic-data.tar.gz (1)
1 | 调试容器将主机的根目录挂载到 /host 。在指定要连接的目标文件时,请参考从调试容器根目录的绝对路径,包括 /host 。 |
在 Red Hat 客户门户的 客户支持页面中导航到现有的支持案例。
选择附加文件,然后按照提示上传文件。
toolbox
toolbox
是一种在 Red Hat Enterprise Linux CoreOS (RHCOS) 系统上启动容器的工具。该工具主要用于启动包含运行 sosreport
和 redhat-support-tool
等命令所需二进制文件和插件的容器。
toolbox
容器的主要目的是收集诊断信息并将其提供给 Red Hat 支持团队。但是,如果需要其他诊断工具,您可以添加 RPM 包或运行作为标准支持工具映像的替代方案的映像。
toolbox
容器默认情况下,运行 toolbox
命令会使用 registry.redhat.io/rhel9/support-tools:latest
映像启动容器。此映像包含最常用的支持工具。如果您需要收集需要支持工具(该工具不属于映像的一部分)的节点特定数据,则可以安装其他软件包。
您已使用 oc debug node/<node_name>
命令访问节点。
您可以以具有 root 权限的用户身份访问您的系统。
将 /host
设置为调试 shell 中的根目录。调试 Pod 将主机的根文件系统挂载到 Pod 内的 /host
。通过将根目录更改为 /host
,您可以运行主机可执行路径中包含的二进制文件。
# chroot /host
启动 toolbox 容器
# toolbox
安装附加软件包,例如 wget
# dnf install -y <package_name>
toolbox
启动替代映像默认情况下,运行 toolbox
命令会使用 registry.redhat.io/rhel9/support-tools:latest
映像启动容器。
您可以通过创建 |
您已使用 oc debug node/<node_name>
命令访问节点。
您可以以具有 root 权限的用户身份访问您的系统。
将 /host
设置为调试 shell 中的根目录。调试 Pod 将主机的根文件系统挂载到 Pod 内的 /host
。通过将根目录更改为 /host
,您可以运行主机可执行路径中包含的二进制文件。
# chroot /host
可选:如果您需要使用替代映像而不是默认映像,请在 root 用户 ID 的主目录中创建一个 .toolboxrc
文件,并指定映像元数据。
REGISTRY=quay.io (1)
IMAGE=fedora/fedora:latest (2)
TOOLBOX_NAME=toolbox-fedora-latest (3)
1 | 可选:指定替代容器注册表。 |
2 | 指定一个替代启动图像。 |
3 | 可选:为工具箱容器指定一个替代名称。 |
输入以下命令启动工具箱容器:
# toolbox
如果已存在正在运行的 |