翻訳
このドキュメントは The Kubectl Book の翻訳です。翻訳の GitHub リポジトリはこちら。
TL;DR
- クラスタ内のコンテナのログを表示する
リソース情報の要約
動機
クラスタ内のコンテナのログを表示することで、ワークロードをデバッグします。
Pod 内のコンテナのログを表示
単一のコンテナを実行している Pod のためにログを表示します。
kubectl logs echo-c6bc8ccff-nnj52
hello
hello
クラッシュし続けるコンテナ
もしコンテナがクラッシュをループしていて、コンテナ終了後にそのログを表示したい場合には、-p
フラグを付けると終了したコンテナのログを見ることができます。例: kubectl logs -p -c ruby web-1
ワークロードのためにすべての Pod のログを表示
ワークロードのためにすべての Pod のログを表示します。
# Print logs from all containers matching label
kubectl logs -l app=nginx
Workloads Logs
ワークロードの管理下にあるすべてのコンテナのログを表示するには、-l
フラグにワークロードのラベルセレクタを渡します。 たとえば、ワークロードのラベルセレクタが app=nginx
だとすると、-l "app=nginx"
を指定すると、そのワークロードのすべての Pod のログを表示できます。
コンテナのログを表示し続ける
コンテナからログをストリームとして表示します。
# Follow logs from container
kubectl logs nginx-78f5d695bd-czm8z -f
終了したコンテナのログを表示
過去に実行したコンテナのログを表示します。これはクラッシュしたコンテナやクラッシュがループしているコンテナのログを表示するのに便利です。
# Print logs from exited container
kubectl logs nginx-78f5d695bd-czm8z -p
Pod 内のコンテナを選択する
Pod 内の特定のコンテナのログを表示します。これは Pod が複数のコンテナを実行していると必要になります。
# Print logs from the nginx container in the nginx-78f5d695bd-czm8z Pod
kubectl logs nginx-78f5d695bd-czm8z -c nginx
ある日時以後のログを表示
ある絶対時間以後に出力されたログを表示します。
# Print logs since a date
kubectl logs nginx-78f5d695bd-czm8z --since-time=2018-11-01T15:00:00Z
ある時間から現在までのログを表示
ある時間から現在までのログを表示します。
例:
- 0s: 0 秒
- 1m: 1 分
- 2h: 2 時間
# Print logs for the past hour
kubectl logs nginx-78f5d695bd-czm8z --since=1h
タイムスタンプを含める
ログの出力行にタイムスタンプを含めます。
# Print logs with timestamps
kubectl logs -l app=echo --timestamps
2018-11-16T05:26:31.38898405Z hello
2018-11-16T05:27:13.363932497Z hello