AIOps : quand l’IA générative s’invite dans la supervision de Kubernetes

Emblématique de l’effervescence autour de l’IA générative, le projet K8sGPT déjà supporté par la CNCF met en lumière les principaux enjeux que cette technologie pose au moment d’analyser des signaux en provenance de Kubernetes.

Lors de la KubeCon 2024 à Paris, la Cloud Native Computing Foundation CNCF a (re) présenté K8sGPT, un projet que la filiale de la Linux Foundation a accepté en sandbox depuis le mois de décembre 2023.

K8sGPT est « un outil pour scanner les clusters Kubernetes, les diagnostiquer et trier des problèmes en anglais ». L’outil a été amplement cité par les interlocuteurs du MagIT lors de la KubeCon parisienne. Le projet sous licence Apache 2.0 a déjà plus de 4 700 étoiles sur GitHub et se rapproche des 200 commits par la communauté, juste derrière Prometheus et Dragonfly en nombre de contributions.

K8sGPT n’est pas ChatGPT : il s’adresse en premier lieu aux SRE qui souhaiteraient simplifier l’analyse de la santé des clusters Kubernetes, pour trier les problèmes à régler, pour recevoir des suggestions de réparation et passer en revue des CVE qui affecteraient les infrastructures cloud native.

« K8sGPT agrège intelligemment des signaux et répond à des questions au sujet de ces signaux », résumait Alex Jones, ingénieur principal chez AWS et fondateur du projet, lors de la conférence Kubecon 2023 North America.

Le système propose des « analyseurs », c’est-à-dire différentes commandes permettant de vérifier l’état des pod, des services, des déploiements, des cronjobs, des nœuds, du réseau ; etc. Une vingtaine de composants liés à Kubernetes peuvent être ainsi observés. La documentation du projet énumère divers moyens pour filtrer les réponses et encadrer les résultats des grands modèles de langage sous-jacent.

« Ces analyseurs sont des connaissances SRE encodées en Go, ils n’ont rien de magique. La magie opère quand vous transmettez un type de contexte particulier et que vous expliquez au LLM que vous ne voulez pas une prédiction, mais une explication de ce contexte dans la langue de votre choix », nuance Alex Jones.

« Vous pouvez l’utiliser avec une dizaine de modèles ou interfaces et il y a un opérateur intracluster pour superviser vos clusters Kubernetes. »
Mario FahlandtCustomer Delivery Architect, Kubermatic

L’outil permet donc de parser des événements dans un environnement Kubernetes. Une fois les événements rassemblés, ce jeu de données est envoyé vers l’API qui masque un LLM afin d’obtenir une analyse synthétique. Les événements rassemblés peuvent être mis en cache afin d’appeler plusieurs modèles pour obtenir des analyses différentes.  

Oui, comme son nom l’indique, K8sGPT exploite des grands modèles de langage et les utilisateurs ont l’embarras du choix. Le projet propose des intégrations sur étagère avec OpenAI, Azure, Cohere, Amazon Bedrock, Gemini (Google) ou encore des modèles « locaux ».

« Vous pouvez l’utiliser avec une dizaine de modèles ou interfaces et il y a un opérateur intracluster pour superviser vos clusters Kubernetes », avance Mario Fahlandt, Customer Delivery Architect chez l’éditeur allemand Kubermatic, ambassadeur ARM, membre du Google Cloud Platform (GDE) et utilisateur de K8sGPT. « Vous pouvez exécuter K8sGPT depuis votre Shell ou dans les clusters pour recevoir les logs de tous les environnements », détaille-t-il lors d’une session de la KubeCon EU 2024.

L’outil n’est toutefois pas miraculeux, mais il doit accélérer le débogage, obtenir une consistance des analyses et simplifier l’accès à Kubernetes, selon Alex Jones.

Confier des logs de Kubernetes à une IA générative, un enjeu en soi

L’un des problèmes majeurs de l’outil est qu’il accède à des données très sensibles.

Afin d’éviter l’exposition des données les plus confidentielles, l’outil dispose de plusieurs filtres et de moyens pour les anonymiser. Pour autant, l’équipe derrière K8sGPT « recommande d’utiliser un backend entièrement différent (un modèle local) dans les environnements de production critiques ».

« Comme beaucoup d’ingénieurs en Allemagne, je n’ai confiance ni dans les fournisseurs ni dans les modèles. Nous ne voulons pas que les données de nos clusters soient envoyées à un fournisseur cloud, qui déploierait un LLM, ou à OpenAI », explique pour sa part Mario Fahlandt.

« Nous avons créé un Triangle d’or dans notre environnement », assure-t-il. Pour simplifier les analyses, Kubermatic se sert de sa documentation en matière de débogage de l’orchestrateur, ainsi que les questions et les réponses les plus pertinentes que l’on peut trouver sur des services de type StackOverFlow. Ensuite, l’équipe, elle, utilise les projets open source Kubeflow et LocalAI.

« Nous n’avons pas à payer un service externe pour profiter d’un assistant d’IA puisque nous l’exécutons dans notre propre environnement », avance l’ingénieur.

Il y a toutefois un point important à prendre en compte dans cette configuration : Kubermatic n’utilise pas l’ensemble des outils présents dans Kubeflow, mais seulement les pipelines de données. « K8sGPT ne prend pas en charge KServe pour le moment ». Pour rappel, le framework ML open source s’appuie en premier lieu sur KServe pour déployer les modèles. « La bonne nouvelle, c’est que Kubeflow peut s’exécuter un peu partout ».

D’où l’utilisation de LocalAI, un moyen de « remplacer les appels API REST vers des modèles propriétaires et distants », dixit la documentation de ce projet. Il s’agit d’un moyen d’inférer un modèle localement, à partir d’une image Docker. « Cela nous permet d’exécuter nos modèles dans nos clusters Kubernetes […] et cerise sur le gâteau, LocalAI ne demande pas d’utiliser de GPU », avance Mario Fahlandt.

Comment Kubermatic tente de s’approprier K8sGPT

Non seulement, l’ingénieur exploite un LLM localement, mais celui-ci a été fine-tuné à partir des données de l’entreprise.

Le jeu de données et un script de fine-tuning développé avec PyTorch ont été poussés dans des pipelines Kubeflow afin d’obtenir un fichier au format gguf qui ensuite est inféré grâce à LocalAI.

« Avant tout, nous avons dû préparer un jeu de données. Cette partie est risible tellement elle est difficile : cela prend du temps humain, du temps de calcul et de l’argent », note l’ingénieur.

Mario Fahlandt ne recommande donc pas de reproduire le cas d’usage de Kubermatic. « Pensez-y à deux fois si vous voulez entraîner et déployer votre propre modèle dans votre stack. C’est toutefois le meilleur moyen pour conserver une grande confidentialité ».

Dans son cas, ce n’est qu’un début. « Kubeflow est horrible à configurer. Nous cherchons une solution qui peut se déployer simplement à l’aide d’un Helm Chart. Ce n’est pas le cas pour Kubeflow, à moins de passer par un service managé », note l’ingénieur.

PyTorch n’est pas non plus l’outil le plus simple à exploiter pour un SRE, tandis qu’il faut, dans le cas présent, « constamment fine-tuner le modèle ».

« La bonne nouvelle, c’est que l’écosystème va si vite que notre déploiement sera sans doute obsolète dans six mois », affirme-t-il lors de sa présentation.  

L’AIOps appliquée à Kubernetes, un champ d’expérimentation pour Mirantis

« Certains commencent à penser que l’IA va permettre de résoudre tous les problèmes de gestion d’infrastructure. Nous n’y sommes pas encore. Loin de là. »
Shaun O’MearaCTO, Mirantis

Shaun O’Meara, CTO de Mirantis, porteur d’une distribution commerciale de Kubernetes, ne croit pas que l’intelligence artificielle va bouleverser totalement l’administration des infrastructures.

« Certains commencent à penser que l’IA va permettre de résoudre tous les problèmes de gestion d’infrastructure. Nous n’y sommes pas encore. Loin de là », signale-t-il auprès du MagIT. « À ma connaissance, aucun administrateur n’est prêt à donner le contrôle de son infrastructure à une IA. Nous savons que même GPT-4 – l’un des LLM les plus performants – hallucine ».

Cela ne veut pas dire que Mirantis ne cherche pas à mettre l’IA au service de la gestion de l’infrastructure pour ses clients, dans la fameuse tendance AIOps.

« Nous considérons que l’IA a sa place. Par exemple, les architectures RAG permettent de corréler des événements afin d’identifier des patterns et détecter des latences, des problèmes, etc. », illustre le CTO de Mirantis, qui n’exclut pas le recours à K8sGPT.

« K8sGPT n’est pas encore très efficace pour l’instant, mais il va s’améliorer. Cela permet de simplifier l’accès et les interactions avec les services Kubernetes », juge-t-il. « Nous sommes dans le train de l’IA, évidemment, mais nous voulons comprendre la manière de rendre la GenAI utile pour nos clients de la manière la plus sûre possible ».

Pour approfondir sur Intelligence Artificielle et Data Science

Close