Retour aux articles • CLOUD • • 5 min de lecture

Skyhook Radar : Topologie K8s & Serveur MCP

Découverte de Skyhook Radar : interface Kubernetes temps réel en binaire Go unique avec graphe de topologie, inspection d'images et serveur MCP.

Skyhook Radar : Topologie K8s & Serveur MCP
Dépôt GitHub Officiel : github.com/skyhook-io/radar (Apache 2.0 • Go 1.26+ & React 19)
Documentation & Site Officiel : radarhq.io

Lorsqu’un incident éclate sur un cluster Kubernetes en production, l’ingénieur SRE se heurte souvent à une alternative frustrante : jongler entre dix terminaux kubectl pour reconstituer mentalement la chaîne Ingress → Service → Deployment → Pod → PVC, ou maintenir une usine à gaz d’observabilité nécessitant sa propre base de données, ses agents collecteurs et ses CRDs propriétaires.

Le projet open-source Skyhook Radar (skyhook-io/radar) résout élégamment cette équation : un binaire Go unique, sans compte Cloud ni dépendance externe, qui se connecte directement à votre ~/.kube/config (ou tourne in-cluster via Helm) pour offrir une visibilité topologique temps réel et un serveur MCP natif pour vos agents IA.


1. Architecture : un binaire Go unique propulsé par les Informers Kubernetes

Contrairement aux tableaux de bord classiques qui interrogent l’API Server par polling massif au risque de saturer etcd, Skyhook Radar embarque un backend en Go 1.26 reposant sur client-go et des SharedInformers en mémoire :

┌────────────────────────────────────────────────────────────────────────────┐
│                   ARCHITECTURE INTERNE DE SKYHOOK RADAR                    │
│                                                                            │
│  [Kubernetes API Server]                                                   │
│         │ (Watch Streams / client-go SharedInformers)                      │
│         ▼                                                                  │
│  [Binaire unique `radar` / `kubectl-radar`]                                │
│    ├─ Graphe relationnel en mémoire (Ingress ➔ Service ➔ Pod ➔ Node)       │
│    ├─ Flux temps réel SSE (Server-Sent Events) vers le navigateur          │
│    ├─ Moteur d'inspection OCI (Container Image Filesystem Explorer)        │
│    ├─ Connecteurs natifs Helm, ArgoCD, FluxCD, Cilium, Caretta & Kubecost  │
│    └─ Serveur MCP intégré (Model Context Protocol pour Claude / Cursor)    │
└────────────────────────────────────────────────────────────────────────────┘
  1. Zéro surcharge sur le cluster : Aucun agent DaemonSet obligatoire pour démarrer ; Radar utilise exactement les droits RBAC de votre contexte kubeconfig courant.
  2. Mise à jour instantanée par SSE (Server-Sent Events) : Dès qu’un Pod passe en CrashLoopBackOff ou qu’un Rollout progresse, la topologie visuelle et la timeline d’événements se mettent à jour à la milliseconde sans rafraîchir la page.

2. Les fonctionnalités clés qui remplacent 5 outils disparates

Au-delà de la simple lecture des manifestes YAML, skyhook-io/radar réunit dans une interface unique les diagnostics les plus fréquents en astreinte SRE :

2.1. Graphe de Topologie interactif & Mode Traffic / NetworkPolicy

Radar reconstruit automatiquement les liens entre Ingress, Gateway API, Services, Deployments/StatefulSets/DaemonSets, Pods, ConfigMaps/Secrets et PVCs. Un sélecteur permet de basculer entre :

  • Vue Ressources : état de santé, redémarrages, sondes liveness/readiness et consommation CPU/RAM ;
  • Vue Trafic & Réseau : visualisation des flux inter-services (via Cilium Hubble ou Caretta) et simulation visuelle des NetworkPolicies (quels flux entrants/sortants sont autorisés ou bloqués).

2.2. Inspection du système de fichiers des images de conteneurs (Image Filesystem Viewer)

C’est l’une des pépites les plus utiles sur le terrain : Radar permet d’explorer l’arborescence complète des couches OCI d’une image de conteneur directement depuis l’interface, de vérifier le contenu d’un fichier de configuration embarqué ou de télécharger un binaire sans avoir à lancer un docker pull + docker export local.

2.3. Gestion complète de Helm, ArgoCD et FluxCD

  • Helm Manager : visualisation des releases, historique des révisions, diff ligne à ligne des values.yaml entre deux déploiements, upgrade et rollback en un clic.
  • GitOps natif : statut de synchronisation et actions directes (Sync, Reconcile, Suspend/Resume) pour ArgoCD (Application) et FluxCD (Kustomization, HelmRelease, GitRepository).

2.4. Audit de sécurité, Certificats TLS, Coûts et Impact de mise à jour K8s

  • Audit & RBAC : détection immédiate des conteneurs privilégiés, de l’absence de seccompProfile/runAsNonRoot ou de resources.limits, et exploration graphique de la chaîne User/ServiceAccount → RoleBinding → Role.
  • Surveillance TLS : inventaire de tous les secrets kubernetes.io/tls avec alerte sur les certificats expirant sous 30 jours.
  • Upgrade Impact : analyse des API dépréciées avant une montée de version mineure du control-plane Kubernetes.

3. Serveur MCP intégré : connecter ses agents IA à la topologie du cluster

Particularité résolument moderne de Skyhook Radar : le binaire intègre nativement un serveur MCP (Model Context Protocol).

Plutôt que de laisser un agent IA exécuter à l’aveugle des dizaines de commandes kubectl get -o json verbeuses qui saturent sa fenêtre de contexte, le serveur MCP de Radar expose des outils structurés à haute densité sémantique :

  • état de santé synthétique du cluster et anomalies actives ;
  • graphe de dépendances amont/aval d’un microservice en panne ;
  • corrélation chronologique des événements (Warning, OOMKilled, FailedScheduling) et des logs récents.

4. Déploiement rapide : poste local (kubectl radar) ou in-cluster (Helm)

4.1. Exécution locale immédiate en tant que plugin kubectl

# Installation via Homebrew (macOS / Linux)
brew install skyhook-io/tap/radar

# Ou via Krew (gestionnaire de plugins kubectl)
kubectl krew index add skyhook https://github.com/skyhook-io/krew-index.git
kubectl krew install skyhook/radar

# Ou via le script d'installation officiel
curl -fsSL https://get.radarhq.io | sh

# Lancement immédiat sur le contexte kubeconfig actif (ouvre http://localhost:8080)
kubectl radar

4.2. Déploiement partagé in-cluster via Helm

Pour offrir un cockpit centralisé aux équipes SRE derrière un Ingress protégé par SSO (Authentik / OIDC) :

helm repo add skyhook https://skyhook-io.github.io/helm-charts
helm repo update

helm upgrade --install radar skyhook/radar \
  --namespace radar-system \
  --create-namespace \
  --set ingress.enabled=true \
  --set ingress.host=radar.interne.exemple.fr
Animation exécution CLI dans le terminal

5. Sources et Références


Si vous voulez plus d’information sur l’infrastructure vous pouvez voir le repo à ce sujet : https://github.com/ravindrajob/InfraAtHome