5.5. OpenShift Container Platform クラスターノードの sosreport アーカイブの生成
OpenShift Container Platform 4.13 クラスターノードの sosreport を生成する方法として、デバッグ Pod を使用することが推奨されます。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 - ホストへの SSH アクセスがあること。
-
OpenShift CLI (
oc) がインストールされている。 - Red Hat の Standard または Premium サブスクリプションがある。
- Red Hat カスタマーポータルのアカウントがある。
- 既存の Red Hat サポートケース ID がある。
手順
クラスターノードのリストを取得します。
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow ターゲットノードのデバッグセッションに入ります。この手順は、
<node_name>-debugというデバッグ Pod をインスタンス化します。oc debug node/my-cluster-node
$ oc debug node/my-cluster-nodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow NoExecuteエフェクトで taint が付けられたターゲットノードで、デバッグセッションに入るには、ダミー namespace に toleration を追加して、そのダミー namespace でデバッグ Pod を起動します。oc new-project dummy
$ oc new-project dummyCopy 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-nodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow /hostをデバッグシェル内の root ディレクトリーとして設定します。デバッグ Pod は、Pod 内の/hostにホストの root ファイルシステムをマウントします。root ディレクトリーを/hostに変更すると、ホストの実行パスに含まれるバイナリーを実行できます。chroot /host
# chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Red Hat Enterprise Linux CoreOS (RHCOS) を実行する OpenShift Container Platform 4.13 クラスターノードは変更できず、Operator を使用してクラスターの変更を適用します。SSH を使用したクラスターノードへのアクセスは推奨されません。ただし、OpenShift Container Platform API が利用できない場合や、kubelet がターゲットノードで適切に機能しない場合、
oc操作がその影響を受けます。この場合は、代わりにssh core@<node>.<cluster_name>.<base_domain>を使用してノードにアクセスできます。sosreportを実行するために必要なバイナリーおよびプラグインが含まれるtoolboxコンテナーを起動します。toolbox
# toolboxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記既存の
toolboxPod がすでに実行されている場合、toolboxコマンドは以下を出力します。'toolbox-' already exists. Trying to start….podman rm toolbox-で実行中の toolbox コンテナーを削除して、sosreportプラグインの問題を回避するために、新規の toolbox コンテナーを生成します。sosreportアーカイブを収集します。sos reportコマンドを実行して、crioおよびpodmanで必要なトラブルシューティングデータを収集します。sos report -k crio.all=on -k crio.logs=on -k podman.all=on -k podman.logs=on
# sos report -k crio.all=on -k crio.logs=on -k podman.all=on -k podman.logs=on1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
-kにより、デフォルト以外のsosreportプラグインパラメーターを定義できます。
- プロンプトが表示されたら Enter を押して続行します。
-
Red Hat サポートケース ID を指定します。
sosreportは ID をアーカイブのファイル名に追加します。 sosreport出力は、アーカイブの場所とチェックサムを提供します。以下の出力参照例は、ケース 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.xz1 The checksum is: 382ffc167510fd71b4f12a4f40b97a4eCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- toolbox コンテナーはホストの root ディレクトリーを
/hostにマウントするため、sosreportアーカイブのファイルパスはchroot環境外にあります。
以下の方法のいずれかを使用して、解析のために
sosreportアーカイブを Red Hat サポートに提供します。ファイルを OpenShift Container Platform クラスターから直接既存の Red Hat サポートケースにアップロードします。
toolbox コンテナー内から、
redhat-support-toolを実行してアーカイブを既存の Red Hat サポートケースに直接割り当てます。この例では、サポートケース 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.xz1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- toolbox コンテナーは、ホストの root ディレクトリーを
/hostにマウントします。redhat-support-toolコマンドでアップロードするファイルを指定する場合は、toolbox コンテナーの root ディレクトリー (/host/を含む) から絶対パスを参照します。
既存の Red Hat サポートケースにファイルをアップロードします。
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.xz1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- デバッグコンテナーは、ホストの root ディレクトリーを
/hostにマウントします。連結のためにターゲットファイルを指定する際に、デバッグコンテナーの root ディレクトリー (/hostを含む) から絶対パスを参照します。
注記Red Hat Enterprise Linux CoreOS (RHCOS) を実行する OpenShift Container Platform 4.13 クラスターノードは変更できず、Operator を使用してクラスターの変更を適用します。
scpを使用してクラスターノードからsosreportアーカイブを転送することは推奨されません。ただし、OpenShift Container Platform API が利用できない場合や、kubelet がターゲットノードで適切に機能しない場合、oc操作がその影響を受けます。この状態では、scp core@<node>.<cluster_name>.<base_domain>:<file_path> <local_path>を実行して、ノードからsosreportアーカイブをコピーすることができます。- Red Hat カスタマーポータルの Customer Support ページ にある既存のサポートケースに移動します。
- Attach files を選択し、プロンプトに従ってファイルをアップロードします。