gaogaoGao Kaptan Docsv0.90.x
Örnekler

İnternete kapalı pod'dan inference

İnterneti tamamen kapalı bir pod, küme içindeki vekil üzerinden kendi API anahtarıyla inference'a erişir. İzolasyon canlı ölçüldü.

Bazı kurulumlar pod'un internete hiç çıkmamasını ister — verinin dışarı sızmaması için. Ama pod'un yine de bir modele ihtiyacı olabilir. Bu sayfa, interneti kapalı bir pod'un küme içindeki inference vekili üzerinden inference'a nasıl eriştiğini ve bunun gerçekten izole olduğunun nasıl ölçüldüğünü anlatır.

Pod (internet KAPALI)  --kume ici, tek port-->  inference-proxy (kaptan-inference ns)
   kendi API anahtari                                   |
                                                        v
                                        Kaptan inference (OpenAI-uyumlu)

Vekil biçim çevirici değil, çıkış aracısıdır: isteği olduğu gibi taşır. API anahtarı vekilde saklanmaz — pod kendi anahtarını Authorization başlığında taşır, kullanım yine sizin adınıza faturalanır.

Bu, AnythingLLM örneğindeki LiteLLM köprüsüne bir alternatiftir. Köprü her uygulama için ayrı kurulur; vekil ise küme genelinde tek kez kurulur ve interneti kapalı tüm pod'lar aynı vekli kullanır. Anthropic→OpenAI gibi bir biçim dönüşümü gerekiyorsa (Claude Code) köprü gerekir; sade OpenAI-uyumlu erişim için vekil yeterli.

Ön koşul (yönetici)

Kapalı-mod, opsiyonel bir altyapı parçası ister. Yoksa kapalı pod inference'a ulaşamaz.

Vekili kurun

deploy/inference-proxy/inference-proxy.yaml uygulanır — kaptan-inference namespace'inde nginx tabanlı vekil (×2) doğar. Ayrıntı: deploy/inference-proxy/README.md.

Tenant namespace'lerini etiketleyin

Vekilin ingress'i yalnızca kaptan.io/tenant=true etiketli namespace'lerden gelen trafiği kabul eder. Etiket yoksa hiçbir tenant vekle giremez.

workload-service'i açın

WORKLOAD_INFERENCE_PROXY_NAMESPACE=kaptan-inference ayarlanır. Bu, kapalı pod'un egress politikasına yalnızca o namespace'in tek portuna dar bir izin ekler (node/host/control-plane değil). Mevcut tenant'ları hemen güncellemek için scripts/reconcile-tenant-egress.sh bir kez çalıştırılır.

Kullanım (kullanıcı)

Bir API anahtarı oluşturun

Inference → API Anahtarları → Yeni anahtar. Anahtar bir kez gösterilir; kopyalayın (sk-...). Bu anahtar hem public adreste hem vekilde çalışır.

İnterneti kapalı bir pod açın

Herhangi bir pod'u internet erişimi kapalı deploy edin. Atölye tarifi kullanıyorsanız, İnternet erişimi açılır menüsünden "Küme içi vekil (kapalı-mod)"'u seçin — uygulama inference'a doğrudan public adres yerine vekilden ulaşacak şekilde ayarlanır.

Vekil üzerinden istek atın

Pod'un içinden, base adres olarak vekli kullanın. Gövde ve Authorization public API ile birebir aynıdır:

curl -s -X POST \
  http://inference-proxy.kaptan-inference.svc.cluster.local:8080/v1/chat/completions \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen3.6-35B-A3B-FP8",
    "messages": [{"role": "user", "content": "Merhaba"}],
    "max_tokens": 128,
    "chat_template_kwargs": {"enable_thinking": false}
  }'

Ölçülen: 200 ve dolu bir yanıt. Aynı pod internete, doğrudan public inference adresine ve apiserver'a ulaşamıyor — yalnızca vekil ve kube-dns açık.

Düşünen modeller (Qwen3.x) için chat_template_kwargs.enable_thinking: false göndermezseniz yanıt düşünme bloğunda kalıp content: null dönebilir — vekil biçim dönüşümü yapmaz, isteği olduğu gibi taşır.

İzolasyonu doğrulama

Kapalı pod'un içinden ölçüldü:

HedefSonuç
inference-proxy...:8080/v1/chat/completions200 (gerçek yanıt)
Genel internet (ör. 1.1.1.1:443)kapalı
Doğrudan public inference (kaptan.isnet.net.tr)kapalı
apiserver / node / control-planekapalı
kube-dns (:53)açık (ad çözümü için)

Yani veri pod'dan yalnızca tek bir yere gidebiliyor: inference vekli. Vekil de yalnızca Gao Kaptan inference'a çıkıyor.

İlgili

Bu sayfa yardımcı oldu mu?

On this page