Cloud Platforms Go ★ 146

silenceper/mcp-k8s

MCP-K8S, Kubernetes kaynaklarını doğal dil ile yönetmenizi sağlayan yapay zeka destekli bir araçtır. Deployment, Service gibi native kaynaklar ve custom resources (CRD) üzerinde işlem yapabilirsiniz - karmaşık komutları ezberlemek yerine ihtiyaçlarınızı anlatın, AI gerisi yapıyor.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "silenceper-mcp-k8s": {
      "command": "node",
      "args": [
        "~/.mcp/mcp-k8s/index.js"
      ]
    }
  }
}

mcp-k8s

Go Version License Latest Release Go Report Card Go CI PRs Welcome

Kubernetes kümeleriyle MCP (Model Control Protocol) araçları aracılığıyla etkileşim sağlayan bir Kubernetes MCP sunucusu.

Özellikler

  • Desteklenen Kubernetes kaynak türlerini sorgulama (yerleşik kaynaklar ve CRD'ler)
  • İnce taneli kontrole sahip Kubernetes kaynak işlemleri
    • Okuma işlemleri: kaynak ayrıntılarını al, filtreleme seçenekleriyle kaynak türüne göre kaynakları listele
    • Yazma işlemleri: kaynakları oluştur, güncelle ve sil (her biri bağımsız olarak etkinleştirilebilir/devre dışı bırakılabilir)
    • Özel kaynaklar da dahil olmak üzere tüm Kubernetes kaynak türleri için destek
  • kubeconfig kullanarak Kubernetes kümesine bağlanır
  • İnce taneli kontrole sahip Helm desteği
    • Helm sürümleri yönetimi (listele, al, kur, yükselt, kaldır)
    • Helm depoları yönetimi (listele, ekle, kaldır)
    • Her işlem bağımsız olarak etkinleştirilebilir/devre dışı bırakılabilir

Önizleme

Cursor aracılığıyla etkileşim

Kullanım Senaryoları

1. LLM Aracılığıyla Kubernetes Kaynak Yönetimi

  • Etkileşimli Kaynak Yönetimi: LLM ile doğal dil etkileşimi aracılığıyla Kubernetes kaynaklarını yönetin ve karmaşık kubectl komutlarını ezberlemek zorunda kalmayın
  • Toplu İşlemler: Karmaşık toplu işlem gereksinimlerini doğal dilde açıklayın ve LLM'nin bunları belirli kaynak işlemlerine dönüştürmesine izin verin
  • Kaynak Durumu Sorguları: Doğal dil kullanarak küme kaynak durumunu sorgulayın ve kolay anlaşılır yanıtlar alın

2. Otomate İşlem Senaryoları

  • Akıllı İşlemler Asistanı: Günlük küme yönetimi görevlerinde operatörler için akıllı bir asistan olarak hizmet verin
  • Sorun Tanısı: Doğal dil sorun açıklamaları aracılığıyla küme sorun tanısında yardımcı olun
  • Yapılandırma İncelemesi: Kubernetes kaynak yapılandırmalarını incelemeye ve optimize etmeye yardımcı olmak için LLM'nin anlama yeteneklerinden yararlanın

3. Geliştirme ve Test Desteği

  • Hızlı Prototip Doğrulaması: Geliştiriciler doğal dil aracılığıyla kaynak yapılandırmalarını hızlı bir şekilde oluşturup doğrulayabilir
  • Ortam Yönetimi: Test ortamı kaynak yönetimini basitleştirin, test kaynaklarını hızlı bir şekilde oluşturun, değiştirin ve temizleyin
  • Yapılandırma Üretimi: Gereksinim açıklamalarına göre en iyi uygulamaları takip eden kaynak yapılandırmalarını otomatik olarak oluşturun

4. Eğitim ve Öğretim Senaryoları

  • Etkileşimli Öğrenme: Yeni başlayanlar doğal dil etkileşimi aracılığıyla Kubernetes konseptlerini ve işlemlerini öğrenebilir
  • En İyi Uygulama Rehberliği: Kaynak işlemleri sırasında LLM en iyi uygulama önerileri sunar
  • Hata Açıklaması: İşlemler başarısız olduğunda kolay anlaşılır hata açıklamaları ve düzeltme önerileri sağlayın

Mimari

1. Proje Özeti

Kubernetes kümelerine bağlanan ve aşağıdaki yetenekleri sağlayan stdio tabanlı bir MCP sunucusu:

  • Kubernetes kaynak türlerini sorgulama (yerleşik kaynaklar ve CRD'ler dahil)
  • Kubernetes kaynakları üzerinde CRUD işlemleri (yapılandırılabilir yazma işlemleri)
  • Sürüm ve depo yönetimi için Helm işlemleri

2. Teknik Stack

  • Go
  • mcp-go SDK
  • Kubernetes client-go kütüphanesi
  • Helm v3 client kütüphanesi
  • İletişim için Stdio

3. Temel Bileşenler

  1. MCP Sunucusu: stdio tabanlı bir MCP sunucusu oluşturmak için mcp-go'nun mcp-k8s paketini kullanır
  2. K8s İstemcisi: Kubernetes kümelerine bağlanmak için client-go kullanır
  3. Helm İstemcisi: Helm işlemleri için Helm v3 kütüphanesini kullanır
  4. Tool Uygulamaları: Farklı Kubernetes işlemleri için çeşitli MCP tools'u uygular

4. Mevcut Tools

Kaynak Türü Sorgulama Tools'ları

  • get_api_resources: Kümedeki desteklenen tüm API kaynak türlerini al

Kaynak İşlem Tools'ları

  • get_resource: Belirli bir kaynakla ilgili ayrıntılı bilgi al
  • list_resources: Bir kaynak türünün tüm örneklerini listele
  • create_resource: Yeni kaynaklar oluştur (devre dışı bırakılabilir)
  • update_resource: Var olan kaynakları güncelle (devre dışı bırakılabilir)
  • delete_resource: Kaynakları sil (devre dışı bırakılabilir)

Helm İşlem Tools'ları

  • list_helm_releases: Kümedeki tüm Helm sürümlerini listele
  • get_helm_release: Belirli bir Helm sürümü hakkında ayrıntılı bilgi al
  • install_helm_chart: Bir Helm chartı yükle (devre dışı bırakılabilir)
  • upgrade_helm_chart: Bir Helm sürümünü yükselt (devre dışı bırakılabilir)
  • uninstall_helm_chart: Bir Helm sürümünü kaldır (devre dışı bırakılabilir)
  • list_helm_repositories: Yapılandırılmış Helm depolarını listele
  • add_helm_repository: Yeni bir Helm deposu ekle (devre dışı bırakılabilir)
  • remove_helm_repository: Bir Helm deposunu kaldır (devre dışı bırakılabilir)

Kullanım

mcp-k8s üç iletişim modunu destekler:

1. Stdio Modu (Varsayılan)

Stdio modunda, mcp-k8s istemciyle standart giriş/çıkış akışları aracılığıyla iletişim kurar. Bu varsayılan moddur ve çoğu kullanım durumu için uygundur.

# Stdio modunda çalıştır (varsayılan)
{
    "mcpServers":
    {
        "mcp-k8s":
        {
            "command": "/path/to/mcp-k8s",
            "args":
            [
                "--kubeconfig",
                "/path/to/kubeconfig",
                "--enable-create",
                "--enable-delete",
                "--enable-update",
                "--enable-list",
                "--enable-helm-install",
                "--enable-helm-upgrade"
            ]
        }
    }
}

2. SSE Modu

SSE (Server-Sent Events) modunda, mcp-k8s bir HTTP endpoint'i mcp istemcisine gösterir. Hizmeti uzak bir sunucuda dağıtabilirsiniz (ancak güvenliğe dikkat etmeniz gerekir)

# SSE modunda çalıştır
./bin/mcp-k8s --kubeconfig=/path/to/kubeconfig --transport=sse --port=8080 --host=localhost --enable-create --enable-delete --enable-list --enable-update --enable-helm-install
# Bu komut tüm işlemleri açacaktır

mcp yapılandırması

{
  "mcpServers": {
    "mcp-k8s": {
      "url": "http://localhost:8080/sse",
      "args": []
    }
  }
}

SSE modu yapılandırması:

  • --transport: SSE modunu etkinleştirmek için "sse" olarak ayarlayın
  • --port: HTTP sunucu portu (varsayılan: 8080)
  • --host: HTTP sunucu ana bilgisayarı (varsayılan: "localhost")

3. Streamable HTTP Modu

Streamable HTTP modunda, mcp-k8s hem doğrudan HTTP yanıtlarını hem de SSE akışlarını destekleyen bir HTTP endpoint'i gösterir. Bu mod daha iyi esneklik sağlar ve akış çıktısını destekler.

# Streamable HTTP modunda çalıştır
./bin/mcp-k8s --kubeconfig=/path/to/kubeconfig --transport=streamable-http --port=8080 --host=localhost --endpoint-path=/mcp --enable-create --enable-delete --enable-list --enable-update --enable-helm-install

mcp yapılandırması

{
  "mcpServers": {
    "mcp-k8s": {
      "url": "http://localhost:8080/mcp",
      "args": []
    }
  }
}

Streamable HTTP modu yapılandırması:

  • --transport: Streamable HTTP modunu etkinleştirmek için "streamable-http" olarak ayarlayın
  • --port: HTTP sunucu portu (varsayılan: 8080)
  • --host: HTTP sunucu ana bilgisayarı (varsayılan: "localhost")
  • --endpoint-path: MCP sunucusu için endpoint yolu (varsayılan: "/mcp")

4. Docker ortamı

SSE Modu

  1. Tam Örnek Resim adınızın mcp-k8s olduğunu ve portları eşlemeniz ile ortam parametrelerini ayarlamanız gerektiğini varsayarak şunu çalıştırabilirsiniz:
docker run --rm -p 8080:8080 -i -v ~/.kube/config:/root/.kube/config ghcr.io/silenceper/mcp-k8s:latest --transport=sse

Streamable HTTP Modu

docker run --rm -p 8080:8080 -i -v ~/.kube/config:/root/.kube/config ghcr.io/silenceper/mcp-k8s:latest --transport=streamable-http --endpoint-path=/mcp

Stdio Modu

{
  "mcpServers": {
    "mcp-k8s": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "-v",
        "~/.kube/config:/root/.kube/config",
        "--rm",
        "ghcr.io/silenceper/mcp-k8s:latest"
      ]
    }
  }
}

Başlangıç

Doğrudan Kullanım

Sürümler sayfasından platformunuz için binary dosyasını doğrudan indirebilir ve hemen kullanabilirsiniz.

Go Install

go install github.com/silenceper/mcp-k8s/cmd/mcp-k8s@latest

Derleme

Makefile Kullanımı (Önerilen)

Makefile, VERSION dosyasından sürüm bilgilerini otomatik olarak enjekte eder:

git clone https://github.com/silenceper/mcp-k8s.git
cd mcp-k8s
make build

Bu, ldflags aracılığıyla enjekte edilmiş sürüm bilgileriyle derlenecektir.

Doğrudan Derleme

git clone https://github.com/silenceper/mcp-k8s.git
cd mcp-k8s
go build -o bin/mcp-k8s cmd/mcp-k8s/main.go

Not: Doğrudan derleme, ldflags'ı manuel olarak belirtmedikçe sürümü "dev" olarak gösterecektir.

Komut Satırı Argümanları

Tüm mevcut seçenekleri görmek için mcp-k8s --help kullanabilir veya sürümü kontrol etmek için mcp-k8s --version kullanabilirsiniz.

Kubernetes Kaynak İşlemleri

  • --kubeconfig: Kubernetes yapılandırma dosyasının yolu (belirtilmezse varsayılan yapılandırma kullanılır)
  • --enable-create: Kaynak oluşturma işlemlerini etkinleştir (varsayılan: false)
  • --enable-update: Kaynak güncelleme işlemlerini etkinleştir (varsayılan: false)
  • --enable-delete: Kaynak silme işlemlerini etkinleştir (varsayılan: false)
  • --enable-list: Kaynak listesi işlemlerini etkinleştir (varsayılan: true)

Helm İşlemleri

  • --enable-helm-release-list: Helm sürümü liste işlemlerini etkinleştir (varsayılan: true)
  • --enable-helm-release-get: Helm sürümü al işlemlerini etkinleştir (varsayılan: true)
  • --enable-helm-install: Helm chart yüklemeyi etkinleştir (varsayılan: false)
  • --enable-helm-upgrade: Helm chart yükseltmeyi etkinleştir (varsayılan: false)
  • --enable-helm-uninstall: Helm chart kaldırmayı etkinleştir (varsayılan: false)
  • --enable-helm-repo-list: Helm deposu liste işlemlerini etkinleştir (varsayılan: true)
  • --enable-helm-repo-add: Helm deposu ekleme işlemlerini etkinleştir (varsayılan: false)
  • --enable-helm-repo-remove: Helm deposu kaldırma işlemlerini etkinleştir (varsayılan: false)

Transport Yapılandırması

  • --transport: Transport türü (stdio, sse veya streamable-http) (varsayılan: "stdio")
  • --host: HTTP transport için ana bilgisayar (SSE veya Streamable HTTP) (varsayılan: "localhost")
  • --port: HTTP transport için TCP portu (SSE veya Streamable HTTP) (varsayılan: 8080)
  • --endpoint-path: Streamable HTTP transport için endpoint yolu (varsayılan: "/mcp")

Sürüm Bilgileri

  • --version: Sürüm, commit hash ve derleme tarihi dahil olmak üzere sürüm bilgilerini göster
  • --help veya -h: Yardım bilgilerini göster

Streamable HTTP Testleri

Streamable HTTP modunun düzgün çalışıp çalışmadığını test etmek için sağlanan test script'ini kullanabilirsiniz:

# Bir terminalde sunucuyu başlat
./bin/mcp-k8s --transport=streamable-http --port=8080 --enable-list

# Başka bir terminalde test script'ini çalıştır
./test_streamable_http.sh

Ayrıntılı test talimatları için bkz. TEST_STREAMABLE_HTTP.md.

MCP İstemcileriyle Entegrasyon

mcp-k8s, herhangi bir MCP uyumlu LLM istemcisiyle entegre edilebilen stdio tabanlı bir MCP sunucusudur. Entegrasyon talimatları için MCP istemcinizin belgelerine başvurun.

Güvenlik Hususları

  • Yazma işlemleri bağımsız yapılandırma anahtarları aracılığıyla kesinlikle kontrol edilir
  • K8s istemcisinin yalnızca gerekli izinleri olmasını sağlamak için RBAC kullanır
  • Enjeksiyon saldırılarını önlemek için tüm kullanıcı girdilerini doğrular
  • Helm işlemleri aynı güvenlik ilkelerini izler ve okuma işlemleri varsayılan olarak etkinleştirilir, yazma işlemleri varsayılan olarak devre dışı bırakılır

WeChat Resmi Hesabını Takip Edin

AI技术小林

Benzer MCP sunucuları

Daha fazla: Cloud Platforms →