Srenix – 30MBバイナリで実現する自己修復型Kubernetes(Apache-2.0)
Srenix は、約30MBのGoバイナリとしてパッケージ化されたオープンソースのKubernetes自己修復ツールです。LLMに依存せず、決定論的なロジックでクラスターの問題を自動検出・診断・修正します。16のK8sプローブ、14の読み取り専用アナライザー、30のクラウドプローブ(AWS/GCP/Azure)、5つのポリシーバウンドなフィクサーを備え、修正後は再検証を行います。オフラインスナップショットモードとクラスター内ライブモードに対応し、GitOpsを考慮し、SlackやAlertmanagerなどと統合します。オンコール作業を削減するために設計されています。
Srenix は、Kubernetesクラスターに自動化された自己修復能力を提供する新しいオープンソースツールです。全体が約30MBのGoバイナリにパッケージ化されており、Apache-2.0ライセンスで公開されています。このプロジェクトは、運用担当者がよく経験する悩み――午前3時にアラートで起こされ、20分かけて手動でログを調査し、結局原因は単純なもの(期限切れのSecretキー、スタックしたExternalSecret、更新されていない証明書など)だった――を解消するために作られました。Srenix は、これらの調査を決定論的に自動化し、信頼できる自動修復を提供することを目指しています。
Srenix のコアアーキテクチャは、検出、診断、修復の3層で構成されています。16のKubernetesプローブと30のクラウドプローブ(AWS、GCP、Azureをカバー)が組み込まれており、クラスターとクラウドリソースの状態を包括的に監視します。14の読み取り専用アナライザーがプローブ結果を分析し、根本原因を特定して修復ヒントを提供します。問題が認識され、事前定義されたポリシーに適合する場合、5つのポリシーバウンドなフィクサーが自動的に修復を実行します。それ以外の場合は、人間に対して正確な修復提案を行います。すべての自動修復は効果を再検証され、Slack、Alertmanager、OpenProjectなどのチャネルにレポートが送信されます。
セキュリティを確保するため、Srenix のホットパスは大規模言語モデル (LLM) から完全に切り離されており、純粋なGoで実装されているため、同じ入力に対して常に同じ出力が得られます。フィクサーは、事前定義された安全なパターン(古いError Pod、名前変更されたSecretキーによるスタックJob、古いReplicaSet Podなど)のみを処理し、Secrets、ConfigMaps、汎用CRDを自動的に変更することはありません。さらに、GitOpsを認識し、Argo/Flux/Helmで管理されているリソースをスキップして宣言型設定との競合を回避します。
Srenix は2つの実行モードを提供します。オフラインスナップショットモードでは、kubectl get ... -o json でキャプチャしたクラスターのスナップショットを使用して診断を行うため、インストールやRBAC権限は不要です。クラスター内ライブモードでは、Helm Chartを使用してCronJobとしてインストールし、2つのスコープが明確に定義されたClusterRoleを使用します。オプションのOperator(AgenticSRE CRD)も利用できます。
現在のリリースは138件あり、最新バージョンは agentic-sre-0.1.0-alpha.1 です。オープンソース版に加え、Srenix Enterprise ではLLMベースのInvestigatorや高度な自動計画機能が追加されますが、コア機能はすべてオープンソース版で利用可能です。
Srenix の作成者 Salil は、このプロジェクトは自身のオンコール経験に基づいており、信頼でき無人で運用できるトラブルシューティングツールを提供したいと述べています。コミュニティはGitHub Discussionsを通じて交流でき、コントリビューションも歓迎されています。