Intuit社は最近、Generative AI(GenAI)を使用してKubernetesクラスタの監視とデバッグの複雑さを管理した方法について語った。GenAIの実験は、検出、デバッグ、修復のプロセスを合理化するために行われた。
Intuit社のシニアスタッフソフトウェアエンジニアであるLili Wan氏とプリンシパルソフトウェアエンジニアであるAnusha Ragunathan氏は、実験の詳細とIntuit社のKubernetes Serviceプラットフォームの背景を説明した。
7,000以上のアプリケーションとサービスをサポートする325以上のKubernetesクラスターを持つIntuit社は、クラスターの健全性を維持し、オンコールエンジニアのアラート疲労を最小限に抑えるという課題に直面していた。
Intuit社のKubernetes Serviceプラットフォームは広大で複雑なため、効果的な観測とデバッグが難しい。アプリケーションの急速な成長とクラスタの頻繁な変更が、さらに複雑さが増した。エンジニアは、圧倒的な量のデータソースとアラートにより、しばしばアラート疲労を経験し、問題の検出と修復を複雑にしていた。
Intuit社のチームは、検出、デバッグ、修復という3つの重要な改善分野を特定した。
検出機能を強化するため、Intuit社は、サービス ゴールデン シグナルの概念を反映した「Cluster Golden Signals」と呼ばれるシステムを導入した。このシステムは、ノイズをフィルタリングし、重要なシグナルにフォーカスしてアラートを出すことで、クラスタの健全性を統合的に表示する。
Kubernetesクラスタのコアコンポーネントは、Prometheus式を使用してメトリクスを単一の健全性指標(Healthy、Degraded、Critical)に集約するダッシュボードを通じて監視される。このアプローチにより、エンジニアは問題のあるクラスタを迅速に切り分け、問題がサービス関連なのかプラットフォーム関連なのかを判断できるため、平均問題検出時間(MTTD)を短縮できる。
より詳細なデバッグのために、Intuit社はK8sGPTと呼ばれるオープンソースツールを統合した。このツールはKubernetesクラスタをスキャンし、サイトの信頼性エンジニアから体系化された知識を活用して問題を診断し、トリアージする。K8sGPTは、リソース固有のアナライザを使用してクラスタから関連するエラーメッセージを抽出し、AIの洞察でそれらを強化する。PrometheusメトリクスとGolden Signalsを組み合わせることで、K8sGPTは公開モデルにエラーの詳細検索を促せる。
この統合により、アラートの潜在的な根本原因を特定するためのコンテキストが提供される。
出典:GenAI Experiments:Kubernetesクラスタの健全性のモニタリングとデバッグ
ちなみに、K8sGPTはCNCFからもっともコントリビュートされたプロジェクトのトップ10に入っている。最初のコミットは2023年3月だった。現在、このプロジェクトには5.6Kのスターと88人のコントリビューターがいる。KubernetesクラスタにインストールされたK8sGPTは、OpenAI、Azure、Cohere、Amazon Bedrock、Google Gemini、ローカルモデルなどのモデルをサポートしている。K8sGPTは、KubeCon EU 2024カンファレンスで、kube-burner、Kuasar、KRKN、easgressといった他のプロジェクトとともに紹介された。
Windows、Mac、Linuxマシンで動作し、brew、RPM、DEB、APK経由でインストールできる。
問題がデバッグされると、修復が次のステップとなる。K8sGPTは、OpenAI、Google、マイクロソフトといった企業が公開している大規模言語モデル(LLM)と統合し、Kubernetes固有のエラーに対する改善ステップを提案する。しかし、公開されているLLMには、Intuit社固有のプラットフォーム構成に関するコンテキストが欠けている。
このギャップに対処するため、Intuit社は独自のGenAIオペレーティングシステム(GenOS)を開発し、検索拡張世代(RAG)を通じてIntuit固有のデータで拡張されたローカルモデルをホストしている。
Intuit社は、MTTDと平均解決時間(MTTR)の削減の進捗状況を監視し続ける計画である。また、トラフィック管理やJava仮想マシンのデバッグなど、他の分野でのGenAIの応用の可能性を探ることも目指している。