24.2. インストールの問題のトラブルシューティング
失敗した OpenShift Container Platform インストールのトラブルシューティングを支援するために、ブートストラップおよびコントロールプレーンマシンからログを収集できます。インストールプログラムからデバッグ情報を取得することもできます。ログとデバッグ情報を使用しても問題を解決できない場合は、インストールの問題が発生した場所の特定 を参照して、コンポーネント固有のトラブルシューティングを確認してください。
OpenShift Container Platform のインストールが失敗し、デバッグ出力またはログにネットワークタイムアウトまたはその他の接続エラーが含まれる場合は、ファイアウォールの設定 に関するガイドラインを確認してください。ファイアウォールとロードバランサーからログを収集すると、ネットワーク関連のエラーを診断するのに役立ちます。
24.2.1. 前提条件
- OpenShift Container Platform クラスターのインストールを試みたが、インストールに失敗している。
24.2.2. 失敗したインストールのログの収集
SSH キーをインストールプログラムに指定している場合、失敗したインストールに関するデータを収集することができます。
実行中のクラスターからログを収集する場合とは異なるコマンドを使用して失敗したインストールに関するログを収集します。実行中のクラスターからログを収集する必要がある場合は、oc adm must-gather
コマンドを使用します。
前提条件
- OpenShift Container Platform のインストールがブートストラッププロセスの終了前に失敗している。ブートストラップノードは実行中であり、SSH でアクセスできる。
-
ssh-agent
プロセスはコンピューター上でアクティブであり、ssh-agent
プロセスとインストールプログラムの両方に同じ SSH キーを提供している。 - 独自にプロビジョニングしたインフラストラクチャーにクラスターのインストールを試行した場合には、ブートストラップおよびコントロールプレーンノードの完全修飾ドメイン名がある。
手順
ブートストラップおよびコントロールプレーンマシンからインストールログを収集するために必要なコマンドを生成します。
installer-provisioned infrastructure を使用する場合は、インストールプログラムが含まれるディレクトリーに切り替え、以下のコマンドを実行します。
$ ./openshift-install gather bootstrap --dir <installation_directory> 1
- 1
installation_directory
は、./openshift-install create cluster
を実行した際に指定したディレクトリーです。このディレクトリーには、インストールプログラムが作成する OpenShift Container Platform 定義ファイルが含まれます。
installer-provisioned infrastructure の場合、インストールプログラムは、ホスト名または IP アドレスを指定しなくてもよいようにクラスターに関する情報を保存します。
各自でプロビジョニングしたインフラストラクチャーを使用した場合は、インストールプログラムが含まれるディレクトリーに切り替え、以下のコマンドを実行します。
$ ./openshift-install gather bootstrap --dir <installation_directory> \ 1 --bootstrap <bootstrap_address> \ 2 --master <master_1_address> \ 3 --master <master_2_address> \ 4 --master <master_3_address>" 5
- 1
installation_directory
には、./openshift-install create cluster
を実行した際に指定したのと同じディレクトリーを指定します。このディレクトリーには、インストールプログラムが作成する OpenShift Container Platform 定義ファイルが含まれます。- 2
<bootstrap_address>
は、クラスターのブートストラップマシンの完全修飾ドメイン名または IP アドレスです。- 3 4 5
- クラスター内のそれぞれのコントロールプレーン (またはマスター) マシンについては、
<master_*_address>
をその完全修飾ドメイン名または IP アドレスに置き換えます。
注記デフォルトクラスターには 3 つのコントロールプレーンマシンが含まれます。クラスターが使用する数にかかわらず、表示されるようにすべてのコントロールプレーンマシンをリスト表示します。
出力例
INFO Pulling debug logs from the bootstrap machine INFO Bootstrap gather logs captured here "<installation_directory>/log-bundle-<timestamp>.tar.gz"
インストールの失敗に関する Red Hat サポートケースを作成する場合は、圧縮したログをケースに含めるようにしてください。
24.2.3. ホストへの SSH アクセスによるログの手動収集
must-gather
または自動化された収集方法が機能しない場合にログを手動で収集します。
デフォルトでは、OpenShift Container Platform ノードへの SSH アクセスは、Red Hat OpenStack Platform (RHOSP) ベースのインストールでは無効になっています。
前提条件
- ホストへの SSH アクセスがあること。
手順
以下を実行し、
journalctl
コマンドを使用してブートストラップホストからbootkube.service
サービスログを収集します。$ journalctl -b -f -u bootkube.service
podman ログを使用して、ブートストラップホストのコンテナーログを収集します。これは、ホストからすべてのコンテナーログを取得するためにループで表示されます。
$ for pod in $(sudo podman ps -a -q); do sudo podman logs $pod; done
または、以下を実行し、
tail
コマンドを使用してホストのコンテナーログを収集します。# tail -f /var/lib/containers/storage/overlay-containers/*/userdata/ctr.log
以下を実行し、
journalctl
コマンドを使用してkubelet.service
およびcrio.service
サービスログをマスターホストおよびワーカーホストから収集します。$ journalctl -b -f -u kubelet.service -u crio.service
以下を実行し、
tail
コマンドを使用してマスターホストおよびワーカーホストのコンテナーログを収集します。$ sudo tail -f /var/log/containers/*
24.2.4. ホストへの SSH アクセスを使用しないログの手動収集
must-gather
または自動化された収集方法が機能しない場合にログを手動で収集します。
ノードへの SSH アクセスがない場合は、システムジャーナルにアクセスし、ホストで生じていることを調査できます。
前提条件
- OpenShift Container Platform のインストールが完了している。
- API サービスが機能している。
- システム管理者権限がある。
手順
以下を実行し、
/var/log
の下にあるjournald
ユニットログにアクセスします。$ oc adm node-logs --role=master -u kubelet
以下を実行し、
/var/log
の下にあるホストファイルのパスにアクセスします。$ oc adm node-logs --role=master --path=openshift-apiserver
24.2.5. インストールプログラムからのデバッグ情報の取得
以下のアクションのいずれかを使用して、インストールプログラムからデバッグ情報を取得できます。
非表示の
.openshift_install.log
ファイルで過去のインストールからのデバッグ情報を確認します。たとえば、以下を入力します。$ cat ~/<installation_directory>/.openshift_install.log 1
- 1
installation_directory
には、./openshift-install create cluster
を実行した際に指定したのと同じディレクトリーを指定します。
インストールプログラムが含まれるディレクトリーに切り替え、
--log-level=debug
でこれを再実行します。$ ./openshift-install create cluster --dir <installation_directory> --log-level debug 1
- 1
installation_directory
には、./openshift-install create cluster
を実行した際に指定したのと同じディレクトリーを指定します。
24.2.6. OpenShift Container Platform クラスターの再インストール
OpenShift Container Platform のインストールに失敗して問題をデバッグおよび解決できない場合は、新しい OpenShift Container Platform クラスターのインストールを検討してください。完全に消去してから、インストールプロセスを開始しなおしてください。user-provisioned infrastructure (UPI) をインストールする場合は、クラスターを手動で破棄し、関連するすべてのリソースを削除する必要があります。次の手順は、installer-provisioned infrastructure (IPI) のインストール用です。
手順
クラスターを破棄し、インストールディレクトリー内の非表示のインストーラー状態ファイルなども含めて、クラスターに関連付けられているすべてのリソースを削除します。
$ ./openshift-install destroy cluster --dir <installation_directory> 1
- 1
installation_directory
は、./openshift-install create cluster
を実行した際に指定したディレクトリーです。このディレクトリーには、インストールプログラムが作成する OpenShift Container Platform 定義ファイルが含まれます。
クラスターを再インストールする前に、インストールディレクトリーを削除してください。
$ rm -rf <installation_directory>
- OpenShift Container Platform クラスターの新規インストール手順に従います。