k8s Pilot

Um plano de controle centralizado e leve para gerenciar múltiplos clusters Kubernetes usando kubeconfig ou configuração in-cluster.

Documentação

k8s-pilot-ci

smithery badge Verified on MseeP

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
  • uv gerenciador de pacotes
  • Acesso a clusters Kubernetes (~/.kube/config ou 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 uv para 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_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
  • namespace_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_logs
  • deployment_list, deployment_get
  • service_list, service_get
  • configmap_list, configmap_get
  • secret_list, secret_get
  • namespace_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:

PromptDescrição
troubleshoot_podGuia passo a passo para solução de problemas de pods
deployment_guideFluxo de trabalho guiado para implantação de aplicações
cluster_health_checkAvaliação abrangente da saúde do cluster
namespace_cleanupProcedimento 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. deploy와 서비스생성(영어

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.