6.3. ビルドのトラブルシューティング
ビルドマネージャーが起動した ビルダー インスタンスは、一時的なものです。これは、タイムアウトまたは失敗時に Red Hat Quay によってシャットダウンされるか、コントロールプレーン (EC2/K8s) によってガベージコレクションされることを意味します。ビルドログを取得するには、ビルドの実行中に取得する必要があります。
6.3.1. DEBUG 設定フラグ リンクのコピーリンクがクリップボードにコピーされました!
DEBUG
フラグを true
に設定すると、完了または失敗後にビルダーのインスタンスがクリーンアップされるのを防ぐことができます。以下に例を示します。
true
に設定すると、デバッグ機能により、quay-builder
サービスの完了または失敗後にビルドノードがシャットダウンされなくなります。また、ビルドマネージャーが EC2 インスタンスを終了したり、Kubernetes ジョブを削除したりしてインスタンスをクリーンアップすることもなくなります。これにより、ビルダーノードの問題をデバッグできるようになります。
デバッグは実稼働サイクルでは設定しないでください。設定しても、ライフタイムサービスが残ります。そのため、たとえばインスタンスが約 2 時間後にシャットダウンします。これが発生すると、EC2 インスタンスが終了し、Kubernetes ジョブが完了します。
デバッグを有効にすると、終了していないインスタンスとジョブも実行中のワーカーの総数にカウントされるため、ALLOWED_WORKER_COUNT
にも影響します。そのため、ALLOWED_WORKER_COUNT
に達した場合、新しいビルドをスケジュールできるようにするには、既存のビルダーワーカーを手動で削除する必要があります。
DEBUG を設定すると、終了していないインスタンス/ジョブも実行中のワーカーの総数にカウントされるため、ALLOWED_WORKER_COUNT
にも影響します。このため、新しいビルドをスケジュールして、ALLOWED_WORKER_COUNT
に達した場合は、既存のビルダーワーカーを手動で削除する必要があります。
6.3.2. OpenShift Container Platform および Kubernetes ビルドのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Kubernetes ビルドのトラブルシューティングを行うには、次の手順を実行します。
手順
次のコマンドを入力して、ローカルマシンと OpenShift Container Platform クラスターまたは Kubernetes クラスターのいずれかで実行されている Pod の間にポート転送トンネルを作成します。
oc port-forward <builder_pod> 9999:2222
$ oc port-forward <builder_pod> 9999:2222
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定した SSH 鍵とポートを使用して、リモートホストへの SSH 接続を確立します。次に例を示します。
ssh -i /path/to/ssh/key/set/in/ssh_authorized_keys -p 9999 core@localhost
$ ssh -i /path/to/ssh/key/set/in/ssh_authorized_keys -p 9999 core@localhost
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
quay-builder
サービスログを取得します。systemctl status quay-builder
$ systemctl status quay-builder
Copy to Clipboard Copied! Toggle word wrap Toggle overflow journalctl -f -u quay-builder
$ journalctl -f -u quay-builder
Copy to Clipboard Copied! Toggle word wrap Toggle overflow