ログの表示
Kubetail をインストールしたら、kubetail serve で Web ダッシュボードを起動するか、kubetail logs でログをターミナルへ直接ストリーミングできます。
Web ダッシュボード (GUI)
Section titled “Web ダッシュボード (GUI)”Web ダッシュボードは、Kubernetes ワークロード全体のログをブラウザー上で参照し、絞り込むためのインターフェースを提供します。kubetail serve で起動すると、http://localhost:7500 が自動的に開きます。ダッシュボードでは、ワークロードや Pod を選択し、そのログ出力をリアルタイムで確認したり、ブラウザーを離れずにクラスタコンテキストを切り替えたりできます。ダッシュボード機能の詳しい説明は、Web ダッシュボード (GUI) ガイド を参照してください。
kubetail logs コマンドを使うと、ログを直接ターミナルで取得してストリーミングできます。個々の Pod、Deployment、その他のワークロードタイプを対象にでき、異なる namespace にある複数のソースを 1 つのコマンドにまとめることも可能です。
kubetail logs frontend:deployments/web backend:deployments/api末尾追跡
既定では、kubetail logs は直近 10 件のレコードを返します。先頭から読みたい場合は --head、すべて返したい場合は --all、新しいレコードを継続的に追跡したい場合は --follow を使います。
# Deployment の新しいレコードをストリーミングするkubetail logs deployments/web --follow
# 最初の 50 件のレコードを返すkubetail logs deployments/web --head=50
# すべてのレコードを返し、そのまま追跡を続けるkubetail logs deployments/web --all --follow列の選択
出力テーブルには既定で timestamp と dot 列が含まれます。--columns、--add-columns、--remove-columns を使って表示内容を調整できます。使用可能な列は timestamp、dot、node、region、zone、os、arch、namespace、pod、container です。
# 既定列に namespace 列と pod 列を追加するkubetail logs deployments/web --add-columns pod,container
# メタデータなしで生のログメッセージだけを表示するkubetail logs deployments/web --raw時間範囲で絞り込む
--since と --until(両端を含む)、または --after と --before(両端を含まない)を使うと、ログを特定の時間範囲に限定できます。ISO 8601 タイムスタンプと期間指定の両方に対応しています。
# 過去 30 分間のレコードkubetail logs deployments/web --since PT30M --all
# 2 つのタイムスタンプの間のレコードkubetail logs deployments/web --since 2024-01-01T00:00:00Z --until 2024-01-02T00:00:00Z --allソースで絞り込む
--node、--zone、--region、--os、--arch を使うと、出力に含める Pod を制限できます。各フラグにはカンマ区切りの値リストを指定できます。
# 特定ノード上で動作する Pod のログだけを表示するkubetail logs deployments/web --node=ip-10-0-1-42
# 特定のアベイラビリティゾーンにある Pod のログだけを表示するkubetail logs deployments/web --zone=us-east-1a
# フィルターを組み合わせるkubetail logs deployments/web --region=us-east-1 --arch=amd64内容で絞り込む
--grep に正規表現を指定してログ行を絞り込めます。
kubetail logs deployments/web --grep "ERROR" --force --all注: --grep を使う場合は --force フラグが必要です。フィルタリングはクライアント側で行われるため、想定より多くのデータをダウンロードする可能性があります。
コンテナライフサイクルの追跡
Kubetail は Kubernetes Pod イベントをリアルタイムで監視します。ローリングアップデート、クラッシュ後の再起動、スケールアウトの際に新しい Pod やコンテナが起動すると、そのログは自動的に現在のストリームへ追加されます。これらの変化を見るためにストリームを再起動する必要はありません。
ログファイルサイズ、最新イベントのタイムスタンプ、検索など、Kubernetes API では利用できない高度な機能を有効にするには、Kubetail のクラスタ内サービスをインストールして、ディスク上のログファイルにより低いレベルでアクセスできるようにします。これを Kubetail API と呼びます。
Kubetail API は、Deployment として動作する Kubetail Cluster API と、DaemonSet として各ノード上で動作する Kubetail Cluster Agent で構成されます。Cluster Agent は、ノードのファイルシステムからコンテナのログファイルを直接読み取り、必要に応じて API にストリーミングする小さな Rust 製プログラムです。大規模に grep でログを絞り込む場合、エージェント側で行を除外してからクライアントへ送れるため、特に有用です。
Kubetail API のインストールは kubetail cluster コマンドで管理できます。
# Kubetail API をクラスタにインストールするkubetail cluster install
# 最新バージョンへアップグレードするkubetail cluster upgrade
# Kubetail API をクラスタから削除するkubetail cluster uninstallKubetail API をインストールすると、Kubetail は UI の高度な機能を自動的に有効化します。
kubetail cluster コマンドは内部で Helm を使用するため、必要であれば後から Helm でインストール内容を調整できます。Helm を直接使って管理したい場合は、Helm Chart リファレンス を参照してください。