Container Hosting (Docker/Kubernetes) için minimum altyapı planı
Docker/Kubernetes için minimum altyapıyı; CPU/RAM, depolama, ağ, yedekleme ve güvenlik başlıklarında net değerlerle planlayın.
Container hosting (Docker veya Kubernetes) için altyapıyı doğru kurmak, hem maliyeti hem de çalışma kararlılığını doğrudan etkiler. “Minimum” yaklaşımı yanlış yapılırsa sistem ya ölçekleme aşamasında tıkanır ya da beklenmedik şekilde performans düşürür. Bu rehberde Kubernetes/Docker tarafında işe yarayan, uygulanabilir bir minimum altyapı planını; kaynak, ağ, depolama ve operasyonel gereksinimler şeklinde netleştiriyorum.
Önce hedefi netleştirin: tek host mu, Kubernetes cluster mı?
Minimum altyapıyı seçmenin en önemli adımı, mimariyi doğru belirlemektir.
Senaryo 1: Docker Compose ile tek makine (minimum başlangıç)
- Tek bir VDS/VPS üzerinde birden fazla servisi
docker composeile ayağa kaldırırsınız. - Kubernetes’e geçiş maliyeti daha düşüktür çünkü mimariyi önce basitleştirirsiniz.
- Bu senaryo için “minimum” değerler daha küçüktür.
Senaryo 2: Kubernetes cluster (minimum gerçek container orkestrasyonu)
- Kubernetes ile pod/servis ölçekleme, rolling update, self-healing gibi özellikleri kullanırsınız.
- Minimum cluster’da bile yüksek kullanılabilirlik hedefi sınırlıdır; yine de düzenli çalışma için kritik bileşenleri kurmak gerekir.
Bu yazıda minimum planı, “üretim benzeri” senaryolar için düşünerek veriyorum: yani tek noktada çökme olduğunda bile veri kaybını azaltan bir yapı kurguluyor.
Minimum kaynaklar: CPU/RAM hesabı (net aralıklarla)
Container hosting minimum altyapıda en sık yapılan hata, CPU/RAM’i “ortalama” yük üzerinden hesaplamaktır. Container’lar pik yükte aniden şişebilir; ayrıca Kubernetes tarafında sistem bileşenleri de kaynak yer.
Docker Compose (tek host) minimum
Aşağıdaki değerler, 2–4 servis çalıştıran ve log/metric için temel izleme kullanan bir kurulum içindir. - CPU: 4 vCPU - RAM: 8 GB - Disk: 100 GB SSD (loglar ve imajlar için pay bırakın) - Swap: 2–4 GB (performans düşürmeden sınırda kullanım)
Kubernetes (minimum 3 node) önerilen başlangıç
Kubernetes’te minimumda bile “control plane” ve “worker” ayrımı kritik olur. En pratik minimum senaryo genelde 3 node ile başlar: - Node 1 (control plane): 2 vCPU / 4 GB RAM - Node 2 (worker): 4 vCPU / 8 GB RAM - Node 3 (worker): 4 vCPU / 8 GB RAM
Toplamda yaklaşık 10 vCPU ve 20 GB RAM ölçeğine karşılık gelen bir başlangıç elde edersiniz.
Tek node Kubernetes (tek master/worker) “minimum maliyet” sağlar ama servis kesintisi ve bakım pencerelerinde operasyonel risk yükseltir. Bu yüzden minimum planı 3 node üzerinden kurgulamak daha tutarlıdır.
Ne zaman “minimum” yetmez?
Aşağıdaki durumlar ortaya çıktığında CPU/RAM artırmadan geçmeyin: - Aynı anda 2’den fazla stateful servis (DB, Redis, queue) çalışıyorsa - Günlük container yeniden konuşlanması (deploy) sayısı yüksekse - Cache/worker süreçleri kısa aralıklarla spike yapıyorsa
Depolama ve kalıcılık: volumes, PV ve yedekleme (en kritik bölüm)
Container mimarisinde “minimum” seçerken asıl farkı depolama yaratır. Kubernetes’te kalıcılık (persistence) doğru kurulmazsa pod yeniden başlatıldığında veri kaybı yaşarsınız.
Docker Compose minimum: kalıcı veri için volume
- Uygulama verisi için container içi dosya yazmak yerine host volume veya NFS/iSCSI kullanın.
- Docker bind mount yerine mümkünse yönetilebilir volume yaklaşımı tercih edin.
Minimum disk planı (tek host): - Uygulama ve geçici dosyalar: 30–50 GB - Container imajları: 20–30 GB - Log birikimi: 20–40 GB (log rotasyonla sınırla) - Gelecek büyüme payı: 10–20 GB
Kubernetes minimum: StorageClass ve PV
Kubernetes’te kalıcılık için temel kavramlar: - StorageClass: sağlayıcı (cloud/VM depolama) soyutlaması - PersistentVolume (PV): gerçek depolama alanı - PersistentVolumeClaim (PVC): uygulamanın istediği boyut/tip
Minimum hedef: - DB/Redis gibi stateful servisler için PVC kullanın. - Aynı pod ölçeğinde bile veri path’i node’dan bağımsız olsun.
Snapshot ve yedekleme sıklığı: net öneri
Yedekleme sıklığını “dakika değil veri kaybı hedefi” olarak belirleyin.
Minimum yedekleme politikası (örnek)
- DB (ör. PostgreSQL/MySQL):
- Snapshot: 6 saatte bir
- Log/Write-ahead (mümkünse): en az 15–30 dakikalık aralıklarla
- Saklama: 7 gün (minimum), kritik ise 14–30 gün
- Uygulama ayarları, secret’lar:
- Her deploy sonrası yapılandırma export + saklama (minimum)
- Saklama: 30 gün
- Object storage (static dosyalar):
- Replication varsa günlük kontrol
- Olmasa bile en az haftalık bütünlük kontrolü
Yedekleme doğrulaması zorunludur
Minimum altyapıda en çok atlanan adım “backup var ama geri dönüş test edilmedi” senaryosudur. - Her yedek türü için ayda 1 kez restore testi yapın. - Restore süresini ölçün: amaç RTO (Recovery Time Objective) ve RPO (Recovery Point Objective) hedefinize uygun mu bakmaktır.
Ağ (network) minimumu: IP, DNS, ingress ve trafiği doğru yönetin
Container sisteminde “minimum altyapı” denince CPU/RAM kadar ağ da belirleyicidir. Özellikle internetten gelen HTTP trafiği için doğru giriş katmanı gerekir.
DNS ve giriş (Ingress) minimum gereksinimleri
- Uygulamalar için tek domain/proje alanı üzerinden yönlendirme yapın.
- Kubernetes’te Ingress Controller kullanın (minimum):
- NGINX Ingress veya benzeri bir çözüm
Load balancer maliyeti kontrolü
Minimum kurulumda her hizmet için ayrı load balancer almak maliyeti artırır. - Tek Ingress altında path-based veya host-based routing kullanın.
Health check zorunluluğu
- Readiness probe: servis trafiği almaya hazır mı?
- Liveness probe: servis sağlıksızsa yeniden başlatılmalı mı?
Minimumda bile bu ayarlar olmadan “yine çalışıyor ama kullanıcı görmüyor” tipi hataları yakalamak zorlaşır.
Güvenlik minimumu: erişim, imaj güvenliği ve network politikaları
Container hosting’de minimum güvenlik, iki şeyi garantilemelidir: veri sızıntısını azaltmak ve yetkisiz erişimi engellemek.
Erişim minimumu: SSH yok, anahtar var
- VDS üzerinde kimlik doğrulamasını SSH key ile yapın.
- Parola girişi kapatın.
- Kubernetes node erişimini sadece yönetim IP aralığıyla sınırlandırın.
Container imaj taraması
- Uygulama imajlarını yayınlamadan önce güvenlik taraması yapın.
- İmajları sadece gereksiz paketler kalmayacak şekilde “minimal” kurun.
Network policy: “her şey herkese” varsayımını kaldırın
Minimumda network policy’yi tamamen “sofistike” kurmak şart değil; fakat en azından: - DB sadece uygulama namespace’lerinden erişilebilir olsun. - Admin panel portları internetten direkt açılmasın.
İzleme ve günlükler: minimum gözlemlenebilirlik (observability)
Kubernetes’te minimum altyapı kurulduktan sonra sorun çıktığında log/metric olmadan çözüm üretmek zorlaşır.
Minimum paket
- Uygulama logları: merkezi loglama (ör. Loki/ELK benzeri)
- Metric: CPU/RAM, container restart sayısı, request latency
- Alert: threshold tabanlı alarm
Hedef metrikler (net liste)
- Pod restart artışı (saatlik)
- Container CPU throttling (varsa)
- HTTP 5xx oranı
- Ortalama ve p95 latency
- Disk kullanım ve inode (disk dolarsa servis durur)
Üretim benzeri minimum mimari: pratik şema
Aşağıdaki kurulum, Kubernetes’te “minimum ama yönetilebilir” bir başlangıç sağlar.
Docker Compose minimum mimari
- Reverse proxy (NGINX/Traefik)
- Uygulama container’ları
- Redis/queue (varsa)
- DB (varsa) + volume
- Merkezi log ve temel metrik
Kubernetes minimum mimari (3 node)
- Node 1: control plane bileşenleri
- Node 2–3: worker
- Ingress controller
- Dağıtık uygulama workload’ları (Deployment)
- Stateful servisler (DB/Redis) için PVC
- Backup job’ları + düzenli snapshot
Karşılaştırma tablosu: “minimum” maliyet/iş yükü dengesi
Aşağıdaki tablo, aynı amaç için hangi altyapının minimumda daha mantıklı olduğuna karar vermeyi kolaylaştırır.
| Senaryo | Minimum kurulum | En iyi kullanım | Minimum risk | En kritik eksik nokta |
|---|---|---|---|---|
| Docker Compose | 1 VDS (4 vCPU/8 GB) | 2–4 servis, hızlı başlangıç | Node giderse tüm servisler etkilenir | PVC/volume disiplininin olmaması |
| Kubernetes (3 node) | 3 VDS (toplam ~10 vCPU/20 GB) | Ölçekleme, rolling update, self-healing | Yanlış probes ile sürekli restart | Depolama (PV/PVC) ve yedekleme testleri |
| Tek node Kubernetes | 1 VDS | Maliyet odaklı PoC | Bakımda/yeniden başlatmada kesinti | Operasyonel dayanıklılık |
Kurulumdan önce kontrol listesi: minimumda “olmazsa olmazlar”
Container hosting’e başlamadan önce aşağıdaki maddeler tamamlanmalıdır.
- Kaynak sınırları: CPU limit/request tanımları (özellikle worker’larda)
- Kalıcılık: DB/Redis gibi stateful servisler için PV/PVC veya volume planı
- Yedekleme: snapshot + restore testi takvimi
- Giriş katmanı: Ingress controller ve domain yönlendirme
- Health check: readiness/liveness probe ayarları
- Erişim: SSH key, rol bazlı erişim (RBAC) ve yönetim IP kısıtı
- İzleme: en az restart, 5xx, latency ve disk alarmı
- İmaj politikası: versiyonlama + güvenlik taraması
Sonuç: Minimumu doğru kurun, sonra ölçekleyin
Container hosting’de minimum altyapı, “en ucuz kurulum” değil, veri kaybı ve servis kesintisini kontrol altında tutan kurulumdur. Başlangıç için Docker Compose (4 vCPU/8 GB) hızlıdır; ölçekleme ve orkestrasyon istiyorsanız Kubernetes’te minimumu 3 node ve kalıcı depolama + düzenli restore testiyle kurun. Hemen bugün atacağınız aksiyon: önce workload listenizi (stateful mı stateless mi), hedef RPO/RTO’nuzu ve giriş (Ingress) gereksiniminizi çıkarın; buna göre CPU/RAM ve PV/PVC planını sabitleyin.
Hosting karşılaştırması yapmaya hazır mısın?
100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.
Hosting Karşılaştır →İlgili Yazılar
Domain WHOIS değişikliği SEO’yu etkiler mi? Net teknik rehber
Domain WHOIS bilgilerini güncellemek SEO’yu doğrudan artırmaz. Ancak bazı senaryolarda indeksleme, güven ve geçmiş sinyaller dolaylı etkilenebilir.
Veritabanı yedekleme: Sıklık ve saklama süreleri nasıl belirlenir?
MySQL/MariaDB ve genel veritabanlarında yedek sıklığı, saklama süreleri ve RPO/RTO ile test planı. Kayıp senaryolarına göre net rehber.
IPv6-only sunucular: hosting geleceği mi, ne zaman mantıklı?
IPv6-only sunucuların gerçek etkisini öğrenin: maliyet, erişilebilirlik, DNS/SSL kurulum adımları ve geçiş planı.
Auto-scaling nedir? Cloud’da kurulum için net adımlar
Auto-scaling (otomatik ölçekleme) nedir, nerede işe yarar? Cloud’da kural seti, metrikler, örnek kurulum ve test adımları.
