4.8. トラブルシューティングおよびデバッグ操作
4.8.1. debug
コマンドシェルを起動して、実行中のアプリケーションをデバッグします。
$ oc debug -h
イメージおよび設定の問題をデバッグする際、実行中の Pod 設定の正確なコピーを取得し、shell でトラブルシュートを実行することができます。障害が発生している Pod は起動できず、rsh
または exec
にアクセスできない可能性があるため、debug
コマンドを実行して、対象の設定の正確なコピーを作成します。
デフォルトモードでは、参照される Pod、レプリケーションコントローラー、またはデプロイメント設定の最初のコンテナー内でシェルを起動します。起動される Pod はソース Pod のコピーになりますが、ラベルは取られ、コマンドは /bin/sh
に変更され、readiness および liveness チェックは無効にされます。コマンドのみを実行する必要がある場合には、--
と実行する 1 つのコマンドを追加します。コマンドを渡しても、デフォルトで TTY が作成されたり、STDIN が送信されたりすることはありません。コンテナーまたは Pod を一般的な方法で変更する際に使用できる他のサポートされているフラグを使用することもできます。
コンテナーを実行する際の一般的な問題として、セキュリティーポリシーによってクラスター上で root ユーザーとしての実行が禁止されることがあります。このコマンドは、(--as-user
を使用して) root ユーザー以外で Pod の実行をテストするか、または (--as-root
を使用して) root ユーザーとして root 以外の Pod を実行するために使用できます。
デバッグ Pod はリモートコマンドの完了時またはシェルが中断する際に削除されます。
4.8.1.1. 使用方法
$ oc debug RESOURCE/NAME [ENV1=VAL1 ...] [-c CONTAINER] [options] [-- COMMAND]
4.8.1.2. 例
現在実行中のデプロイメントをデバッグするには、以下を実行します。
$ oc debug dc/test
非 root ユーザーとしてデプロイメントの実行をテストするには、以下を実行します。
$ oc debug dc/test --as-user=1000000
second
コンテナーで env
コマンドを実行し、特定の失敗したコンテナーをデバッグするには、以下を実行します。
$ oc debug dc/test -c second -- /bin/env
デバッグするために作成される Pod を表示するには、以下を実行します。
$ oc debug dc/test -o yaml