İ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ü:
| Hedef | Sonuç |
|---|---|
inference-proxy...:8080/v1/chat/completions | 200 (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-plane | kapalı |
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
- Inference API — base URL, anahtar, tam örnek
- AnythingLLM — kapalı kurulum — köprü tabanlı alternatif

Gao Kaptan Docs