K8sGPT: 概要
K8sGPT とは
It has SRE experience codified into its analyzers and helps to pull out the most relevant information to enrich it with AI.
README.md, k8sgpt, https://github.com/k8sgpt-ai/k8sgpt
README.md の引用ですが、SRE Experience が Analyzerに体系化されており、最も関連性の高い情報を引き出してAIで補完するのに役立つと書かれています。
SRE Experience と Analyzers
Kubernetesの各リソースにはAnalyzerというクラスが定義されています。AnalyzerにはCore(Pod、PVC、ReplicaSetなど)とOptional(HPA、PDB、NetworkPolicyなど)があります。
Analyzer は、自分で選ぶこともでき、デフォルトの場合は Core が選択されます。どのクラスが利用できるかはこちらをご覧ください。Analyzerでは、各リソースに対してバリデーションが定義されて、ハードコードされており、その内容は「SRE Experience」につながっています。
SRE Experience の抜粋
- Deployment Analyzer
- Replicas の Desire と Actual の値がずれていないか監視します
- PVC Analyzer
- PVCのステータスがPendingの場合は、EventReasonを見て Provisioning Failed が確認します
- Node Analyzer
- ノードのステータスがNode Not Ready か DiskPressure, MemoryPressure, PIDPressure, NetworkUnavailable を監視します
GPT(AI) の使われどころ
K8sGPTはAnalyzerの結果とともに以下のプロンプトを送信します。
以下のプロンプトでは、エラーに基づいた解決策をGPTに求めていることがわかります。
Simplify the following Kubernetes error message delimited by triple dashes written in --- %s --- language; --- %s ---.
Provide the most possible solution in a step by step style in no more than 280 characters.
Write the output in the following format: Error: {Explain error here} Solution: {Step by step solution here}
Contributing について
Kubernetes の運用の経験に基づいてAnalyzerに機能を実装したい場合は、こちらのドキュメントをお読みください!(こちら)
Discussion