k8s Pilot
Um plano de controle centralizado e leve para gerenciar múltiplos clusters Kubernetes usando kubeconfig ou configuração in-cluster.
Documentação
O Piloto Central para Suas Frotas Kubernetes ✈️✈️
k8s_pilot é um servidor de plano de controle centralizado e leve para gerenciar múltiplos clusters Kubernetes de uma só vez.
Com ferramentas poderosas e APIs intuitivas, você pode observar e controlar todos os seus clusters a partir de um único cockpit.
🚀 Visão Geral
- 🔄 Suporta alternância de contexto multi-cluster
- 🔧 Permite operações CRUD nos recursos Kubernetes mais comuns
- 🔒 Modo somente leitura para inspeção segura de clusters
- ⚙️ Desenvolvido com MCP para Claude AI e além
- 🌐 Suporte a transporte HTTP transmissível para acesso remoto
- 🤖 Prompts MCP para operações guiadas
- 📝 Registro sensível ao contexto para operações de escrita
🧰 Pré-requisitos
- Python 3.13 ou superior
uvgerenciador de pacotes- Acesso a clusters Kubernetes (
~/.kube/configou configuração in-cluster)
# Install uv (if not installed)
# For MacOS
brew install uv
# For Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
Instalação
# Clone the repository
git clone https://github.com/bourbonkk/k8s-pilot.git
cd k8s-pilot
# Launch with uv + MCP
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py
🆕 Novidades na v2.0
- Transporte HTTP transmissível: Gerenciamento remoto de clusters via HTTP (além de stdio)
- Prompts MCP: Modelos de prompt integrados para operações K8s comuns
- Registro sensível ao contexto: Operações de escrita agora relatam progresso via contexto MCP
- Correções de bugs: Corrigidos clientes de API ausentes para recursos Ingress e RBAC
- Segurança: Adicionadas verificações de somente leitura para operações de modificação de nós
- Dockerfile: Modernizado com o gerenciador de pacotes
uvpara builds mais rápidos
Uso
Modo Normal (Acesso Total)
# Start with full read/write access
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py
Modo Somente Leitura (Inspeção Segura)
# Start in readonly mode - only read operations allowed
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py --readonly
Modo HTTP Transmissível (Acesso Remoto)
# Start with Streamable HTTP transport for remote access
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py --transport streamable-http
Opções de Linha de Comando
# Show help
uv run --with "mcp[cli]>=1.28.0,<2" python k8s_pilot.py --help
Executar via Docker
Você pode executar o k8s-pilot diretamente usando a imagem Docker publicada sem instalar o uv localmente.
Certifique-se de montar seu ~/.kube/config para que o contêiner possa acessar seus clusters.
docker run -i --rm \
-v ~/.kube/config:/root/.kube/config \
ghcr.io/bourbonkk/k8s-pilot:latest
Modo Somente Leitura
A flag --readonly ativa um modo de segurança que impede qualquer operação de escrita em seus clusters Kubernetes. Isso é perfeito para:
- Inspeção de cluster sem risco de alterações acidentais
- Cenários de auditoria onde você precisa visualizar, mas não modificar
- Ambientes de aprendizado onde você deseja explorar com segurança
- Monitoramento de produção com risco zero de modificações
Operações Protegidas (Bloqueadas no Modo Somente Leitura)
pod_create,pod_update,pod_deletedeployment_create,deployment_update,deployment_deleteservice_create,service_update,service_deleteconfigmap_create,configmap_update,configmap_deletesecret_create,secret_update,secret_deletenamespace_create,namespace_delete- Todas as outras operações de criação/atualização/exclusão
Operações Permitidas (Sempre Disponíveis)
pod_list,pod_detail,pod_logsdeployment_list,deployment_getservice_list,service_getconfigmap_list,configmap_getsecret_list,secret_getnamespace_list,namespace_get- Todas as outras operações de listagem/obtenção
Prompts MCP
O k8s-pilot inclui modelos de prompt integrados para operações comuns:
| Prompt | Descrição |
|---|---|
troubleshoot_pod | Guia passo a passo para solução de problemas de pods |
deployment_guide | Fluxo de trabalho guiado para implantação de aplicações |
cluster_health_check | Avaliação abrangente da saúde do cluster |
namespace_cleanup | Procedimento seguro de limpeza de namespaces |
Uso com Claude Desktop
Use esta configuração para executar o servidor MCP k8s_pilot dentro do Claude:
{
"mcpServers": {
"k8s_pilot": {
"command": "uv",
"args": [
"--directory",
"<path-to-cloned-repo>/k8s-pilot",
"run",
"--with",
"mcp[cli]>=1.28.0,<2",
"python",
"k8s_pilot.py"
]
}
}
}
Para o modo somente leitura, use esta configuração:
{
"mcpServers": {
"k8s_pilot_readonly": {
"command": "uv",
"args": [
"--directory",
"<path-to-cloned-repo>/k8s-pilot",
"run",
"--with",
"mcp[cli]>=1.28.0,<2",
"python",
"k8s_pilot.py",
"--readonly"
]
}
}
}
Para Docker, use esta configuração (substitua YOUR_USERNAME pelo seu nome de usuário real do Mac):
{
"mcpServers": {
"k8s_pilot_docker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/Users/YOUR_USERNAME/.kube/config:/root/.kube/config",
"ghcr.io/bourbonkk/k8s-pilot:latest"
]
}
}
}
Substitua <path-to-cloned-repo> pelo diretório real onde você clonou o repositório.
Cenário
Crie um Deployment usando a imagem nginx:latest no namespace pypy e também crie um Service que se conecte a ele.
Principais Recursos
Gerenciamento Multi-Cluster
- Interaja perfeitamente com vários clusters Kubernetes
- Execute operações sensíveis ao contexto
- Alterne facilmente entre clusters via prompts MCP
Controle de Recursos
- Visualizar, criar, atualizar, excluir:
- Deployments, Services, Pods
- ConfigMaps, Secrets, Ingresses
- StatefulSets, DaemonSets
- Roles, ClusterRoles
- PersistentVolumes & Claims
Operações de Namespace
- Criar/excluir namespaces
- Listar todos os recursos em um namespace
- Gerenciar rótulos e cotas de recursos
Gerenciamento de Nós
- Visualizar detalhes e condições dos nós
- Cordon/uncordon, rotular/marcar nós
- Listar pods por nó
Licença
Este projeto é licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter detalhes.