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