Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

GKEのInteractive Troubleshooting PlaybookとGeminiを活用した爆速トラブルシューティング

こんにちは。Strategic Products Engineering Unit SREグループの辻田です。

先日、Google Cloudさんが主催するTAP(Tech Acceleration Program)に参加してきました。2回目の参加*1となる今回は、Platformのより詳細な設計に関するディスカッションや、実践的な運用のノウハウについて学べました。

IaCをモブプロしている様子

今回は、その中からGKEのInteractive Troubleshooting Playbookについて紹介します。

GKE運用におけるトラブルシューティング

GKEを使ったアプリケーション運用では、障害発生時の迅速な対応が求められます。しかし、Kubernetesのトラブルシューティングは多くの情報が必要で、初心者はもちろん、熟練者でも手間がかかる場合が多いです。

そこで役立つのが、GKEのInteractive Troubleshooting Playbookです。このツールは、Podの異常時に自動で表示されるインタラクティブなガイドで、問題解決までのプロセスをシンプルにします。ここでは、このPlaybookの使い方や便利な機能について紹介します。

Interactive Troubleshooting Playbookとは?

Interactive Troubleshooting Playbookは、Podが正常にスケジュールされない場合や、CrashLoopBackoff状態に陥った場合に表示される、インタラクティブなトラブルシューティングツールです。各Podの詳細画面からアクセスでき、異常の原因に関する情報を集約して提供してくれるため、手間をかけずに必要な情報にアクセスできます。

例えば、Podがクラッシュして再起動を繰り返している場合、Playbookを使うとその状態に関連するメトリクスやログの詳細を一括で確認できます。これにより、一般的なエラーメッセージの意味や解決方法を個別に調べる手間が省け、スムーズに対応できます。

Geminiによるログ解析支援

GKEのトラブルシューティング機能の中でも特筆すべきは、Gemini AIを活用したログ解析支援です。ログエントリ内の「Explain this log entry」をクリックすると、Geminiがインフラレベルでエラーログの内容を解説してくれます。例えば、特定のエラーメッセージがどういう意味を持つのか、どのように対処すべきかについての具体的なアドバイスが得られます。

「Explain this log entry」ボタンは、現時点では英語のみのサポートです。(言語設定が日本語だと表示されない。)日本語訳が必要な場合は、プロンプトに日本語での質問を追加すれば対応可能です。エラー内容を理解しやすくするだけでなく、迅速な対応を可能にしてくれるので、運用負荷の軽減に大いに役立ちます。

使い方

Playbookの表示

GKEコンソールの「Workloads」から、異常が発生しているPodを選択します。Podの詳細画面には、View interactive playbookのリンクが表示されています。このタブをクリックすると、Interactive Troubleshooting Playbookが表示されます。

Playbookの画面には、Podの異常状態に関連する情報が一覧表示されています。コンテナの再起動回数や、ログの内容、メトリクスのグラフなどが確認できます。

  1. Container Restarts by Workload (Per 5 Minute Intervals)
    グラフは、特定のワークロードにおけるコンテナの再起動回数を、5分間隔で表示しています。Y軸は再起動の回数を示し、X軸は時間です。この例では、再起動の数が一部の時間帯で増えており、再起動が断続的に発生していることがわかります。

  2. Next Steps
    「Next Steps」セクションには、再起動の原因を特定するための推奨アクションが表示されています。各リンクは関連するトラブルシューティングガイドに直接アクセスできるショートカットです。

    • Jump to Identify Application Errors: アプリケーションエラーの調査へ。
    • Jump to Investigate Out Of Memory Issues: メモリ不足の問題の調査へ。
    • Jump to Investigate Node Disruptions: ノードの中断(ディスラプション)についての調査へ。
    • Jump to Investigate Liveness Probe Failures: Liveness Probe(生存確認プローブ)の失敗についての調査へ。
    • Jump to Correlate Change Events: 最近の変更イベントと関連付けて調査するためのリンク。このリンクを使うことで、Podの動作に影響を与えた可能性のある変更を確認できます。
  3. Troubleshooting Guide
    画面右側には「Troubleshooting Guide」が表示されています。このガイドは、特定の問題に対する解決策を提供しており、次のような項目が含まれています。

    • View Restarting Containers: 再起動中のコンテナの表示
    • Identify Application Errors: アプリケーションエラーの特定
    • Investigate Out Of Memory Issues: メモリ不足の問題の調査
    • Investigate Node Disruptions: ノードの中断の調査
    • Investigate Liveness Probe Failures: Liveness Probe失敗の調査
    • Correlate Change Events: 変更イベントの関連付け
    • Future Mitigation Tips: 将来の問題緩和のためのヒント

ログ解析支援

こちらの「Explain this log entry」ボタンをクリックすると、Geminiがエラーログの内容を解説してくれます。

Google CloudのSite Reliability Engineer (SRE)の役割を想定して、ログエントリの内容を分析し、その意味を説明するプロンプトが投げられています。

英語の解説が表示されるので、日本語訳をお願いしてみます。

そうすると、ひと目でバイナリアーキテクチャの不一致が怪しいことがわかります。M1 Macでビルドしたバイナリをx86環境で実行しようとしているため、exec format errorが発生しているようです。

exec format errorのような簡単な例であれば、ログを見てすぐに原因を特定できるかもしれません。しかし必要なログにたどり着くのに時間がかかることもありますし、エラーメッセージの意味を理解するのが難しい場合もあります。そのような場合には、Geminiを活用すると、迅速かつ正確に問題を特定できるでしょう。

このように、Interactive Troubleshooting PlaybookとGeminiを活用することで、問題を解決するためのガイドとリソースに素早くアクセスできます。これにより、エンジニアが問題の根本原因を効率的に特定し、迅速に対応することが可能になります。

まとめ

GKEのInteractive Troubleshooting Playbookは、トラブルシューティングに必要なリソースを一箇所に集め、インタラクティブなガイドとして提供してくれる便利なツールです。Geminiのログ解析支援機能と併用することで、エラー発生時の対応スピードと精度が大幅に向上すると実感しました。

Kubernetesの障害対応を効率化したいと考えている方は、ぜひこのツールを活用してみてください。

最後に、Google Cloudの皆さま、今回も2日間にわたる充実したプログラムを提供していただき、ありがとうございました。より実践的なディスカッションやハンズオンを通じて、GKEの運用に関する知識を深められました。

細かい設計や運用の解像度が上がったので、Platform活用に向けて加速していきます!

p.s.

毎回Googleさんのオフィス体験が楽しく素晴らしく、TAPロスになります。

前歯が心配で手を出せなかったリンゴ

© Sansan, Inc.