Le pilote central pour vos flottes Kubernetes ✈️✈️
k8s_pilot
est un serveur de plan de contrôle léger et centralisé pour gérer plusieurs clusters Kubernetes à la fois.
Grâce à des outils puissants et des API intuitives, vous pouvez observer et contrôler tous vos clusters à partir d'un seul cockpit.
🚀 Vue d'ensemble
- 🔄 Prise en charge de la commutation de contexte multi-clusters
- 🔧 Permet des opérations CRUD sur les ressources Kubernetes les plus courantes
- 🔒 Mode lecture seule pour une inspection sûre du cluster
- ⚙️ Powered by MCP pour Claude AI et au-delà
🧰 Prérequis
- Python 3.13 ou supérieur
- gestionnaire de paquets
uv
- Accès aux clusters Kubernetes
(~/.kube/config
ou in-cluster config)
# Installer uv (s'il n'est pas installé) # Pour MacOS brew install uv # Pour Linux curl -LsSf https://astral.sh/uv/install.sh | sh
Installation
# Cloner le dépôt git clone https://github.com/bourbonkk/k8s-pilot.git cd k8s-pilot # Lancer avec uv + MCP uv run --with mcp[cli] mcp run k8s_pilot.py
Utilisation
Mode normal (accès complet)
# Démarrer avec un accès complet en lecture/écriture uv run --with mcp[cli] mcp run k8s_pilot.py
Mode lecture seule (inspection sécurisée)
# Démarrer en mode lecture seule - seules les opérations de lecture sont autorisées uv run --with mcp[cli] python k8s_pilot.py --readonly
Options de la ligne de commande
# Afficher l'aide uv run --with mcp[cli] python k8s_pilot.py --help
Mode lecture seule
Le drapeau --readonly
active un mode de sécurité qui empêche toute opération d'écriture sur vos clusters Kubernetes. C'est parfait pour :
- L'inspection des clusters sans risque de modifications accidentelles
- Scénarios d'audit où vous avez besoin de voir mais pas de modifier
- Les environnements d'apprentissage où vous souhaitez explorer en toute sécurité
- Surveillance de la production avec un risque nul de modifications
Opérations protégées (bloquées en mode lecture seule)
pod_create
,pod_update
,pod_delete
deployment_create
,deployment_update
,deployment_delete
service_create
,service_update
,service_delete
configmap_create
,configmap_update
,configmap_delete
secret_create
,secret_update
,secret_delete
espace_noms_créer
,espace_noms_supprimer
- Toutes les autres opérations de création/mise à jour/suppression
Opérations autorisées (toujours disponibles)
pod_list
,pod_detail
,pod_logs
deployment_list
,deployment_get
service_list
,service_get
configmap_list
,configmap_get
secret_list
,secret_get
namespace_list
,namespace_get
- Toutes les autres opérations de liste/get
Utilisation avec Claude Desktop
Utilisez cette configuration pour exécuter le serveur MCP k8s_pilot à partir de Claude :
{ "mcpServers" : { "k8s_pilot" : { "command" : "uv", "args" : ["--directory", "<path-to-cloned-repo>/k8s-pilot", "run", "--with", "mcp[cli]", "mcp", "run", "k8s_pilot.py" ] } } }
Pour le mode lecture seule, utilisez cette configuration :
{ "mcpServers" : { "k8s_pilot_readonly" : { "command" : "uv", "args" : ["--directory", "<path-to-cloned-repo>/k8s-pilot", "run", "--with", "mcp[cli]", "python", "k8s_pilot.py", "--readonly" ] } } } }
Remplacez par le répertoire dans lequel vous avez cloné le répertoire.
Scénario
Créer un déploiement en utilisant l'image nginx:latest dans l'espace de noms pypy, et créer également un service qui s'y connecte
Caractéristiques principales
Gestion multi-clusters
- Interagir de manière transparente avec plusieurs clusters Kubernetes
- Effectuer des opérations contextuelles
- Passer facilement d'un cluster à l'autre via des invites MCP
Contrôle des ressources
- Visualisation, création, mise à jour, suppression
- Déploiements, services, pods
- ConfigMaps, Secrets, Ingresses
- StatefulSets, DaemonSets
- Rôles, ClusterRoles
- PersistentVolumes & Claims
Opérations sur les espaces de noms
- Créer/supprimer des espaces de noms
- Lister toutes les ressources d'un espace de noms
- Gérer les étiquettes et les quotas de ressources
Gestion des nœuds
- Afficher les détails et les conditions des nœuds
- Cordonner/décordonner, étiqueter/étiqueter les nœuds
- Liste des pods par nœud
Licence d'utilisation
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.