ノードへの SSH アクセスを使用して OpenShift 4 の Red Hat Enterprise Linux CoreOS で sos report を生成する方法
Environment
- Red Hat OpenShift Container Platform (RHOCP)
- 4
- Red Hat Enterprise Linux CoreOS (RHCOS)
- sos
Issue
oc debug nodeが機能しない場合に、OCP 4 の Red Hat Enterprise Linux CoreOS でsos reportを生成するにはどうすればよいですか?- Red Hat OpenShift 4 ノードの
sos reportを生成するにはどうすればよいですか? -
rhel9/support-toolsイメージを使用してsos reportを生成すると、トレースバックで失敗します。[root@ip-1-1-1-1 ~]# podman run -it registry.redhat.io/rhel9/support-tools /usr/bin/bash bash-4.2# sosreport Traceback (most recent call last): File "/usr/sbin/sosreport", line 19, in <module> main(sys.argv[1:]) File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 1498, in main sos = SoSReport(args) File "/usr/lib/python2.7/site-packages/sos/sosreport.py", line 360, in __init__ self.policy = sos.policies.load(sysroot=self.opts.sysroot) File "/usr/lib/python2.7/site-packages/sos/policies/__init__.py", line 44, in load cache['policy'] = policy(sysroot=sysroot) File "/usr/lib/python2.7/site-packages/sos/policies/redhat.py", line 258, in __init__ super(RHELPolicy, self).__init__(sysroot=sysroot) File "/usr/lib/python2.7/site-packages/sos/policies/redhat.py", line 58, in __init__ sysroot = self._container_init() File "/usr/lib/python2.7/site-packages/sos/policies/redhat.py", line 153, in _container_init host_tmp_dir = os.path.abspath(self._host_sysroot + self._tmp_dir) TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
Resolution
設計上、OpenShift 4 ノードは イミュータブルであり、クラスターの変更を適用するには Operator に依存します。つまり、SSH で基礎になるノードに直接アクセスすることは、推奨される手順ではないことを意味します。さらに、ノードは アクセス済み としてテイントされます。
注記:上記の理由により、可能な場合は常に、
ocコマンドラインから直接デバッグ Pod を生成して、SSH を使用せずに sos report を生成します。詳細は How to generate sos report within nodes without SSH in OCP 4 を参照してください。
SSH アクセスによる sos report の生成
SSH なしで sos report を生成 できない場合は、SSH 経由で sos report を生成する OpenShift 4 ノードに接続し、root に切り替えます。
$ ssh core@[NODE] # ssh with core user to the NODE using ssh key specified in install-config.yaml
[core@node ~]$ sudo -i
注記: 非接続環境では、
registry.redhat.io/rhel9/support-toolsをミラーリングする必要があります。ノードでイメージがすでに使用できる場合は、toolboxを実行する前に、次のようにノード内に/root/.toolboxrcファイルを作成してください (REGISTRY変数はレジストリーの URL に、IMAGE名はカスタムレジストリー内の名前に変更してください)。[root@node ~]# vi /root/.toolboxrc REGISTRY=[custom-private-registry.example.com:5000] IMAGE=rhel9/support-tools
クラスター環境でプロキシーが使用されている場合は、Cannot use toolbox in proxy environment の記事で説明されているように、プロキシー設定がインポートされていることを確認してください。
toolbox コマンドを実行します。
[root@node ~]# toolbox
Spawning a container 'toolbox-root' with image 'registry.redhat.io/rhel9/support-tools'
Detected RUN label in the container image. Using that as the default...
Command: /proc/self/exe run -it --name toolbox-root --privileged --ipc=host --net=host --pid=host -e HOST=/host -e NAME=toolbox-root -e IMAGE=registry.redhat.io/rhel9/support-tools:latest -v /run:/run -v /var/log:/var/log -v /etc/machine-id:/etc/machine-id -v /etc/localtime:/etc/localtime -v /:/host registry.redhat.io/rhel9/support-tools:latest
sos report コマンドを実行します (生成された sos report が大きすぎる場合は --all-logs パラメーターを削除します)。
[root@node ~]# sos report -e openshift -e openshift_ovn -e openvswitch -e podman -e crio -k crio.all=on -k crio.logs=on -k podman.all=on -k podman.logs=on -k networking.ethtool-namespaces=off --all-logs --plugin-timeout=600
これにより、ホストの /var/tmp/ にマップされるコンテナーの /host/var/tmp ディレクトリーに sos report が生成されます。生成された sos report をサポートケースに添付するには、How to provide an sos report from a RHEL CoreOS OpenShift 4 node を参照してください。
sos report が作成されたら、exit を実行してコンテナーのノードへの bash セッションを終了し、もう一度実行してノードから終了します。
[root@node ~]# exit
[root@node ~]# exit
$
Root Cause
toolbox コマンドは、podman container runlabel run registry.redhat.io/rhel9/support-tools を実行します。これは、RHEL Atomic Host の atomic run registry.redhat.io/rhel7/support-tools を置き換えるものです。
Diagnostic Steps
toolbox がデバッグコンテナーを想定どおりに起動しない場合は、REGISTRY、IMAGE、または TOOLBOX_NAME オプションのデフォルト値をオーバーライドしている可能性のあるユーザー作成の $HOME/.toolboxrc を確認してください。切断された環境では、ミラーリングされたイメージを参照するために、そのファイルを作成する必要があります。
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Comments