😑

K8sGPT: 概要

2023/12/28に公開

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}

https://github.com/k8sgpt-ai/k8sgpt/blob/main/pkg/ai/prompts.go

Contributing について

Kubernetes の運用の経験に基づいてAnalyzerに機能を実装したい場合は、こちらのドキュメントをお読みください!(こちら)

Discussion