Kubernetes mi Docker Swarm mı? 100 Uygulama ile Test Ettim

Şirketimizin altyapısını taşıyacaktık ve iki seçenek vardı: Kubernetes veya Docker Swarm. İkisini de test etmek için aynı 100 mikro hizmeti her iki orkestrasyona deploy ettim. Sonuç: Kubernetes teknik olarak üstün ama Docker Swarm pratik olarak daha kolay. Hangisini seçtiğimizi ve nedenini anlatıyorum.
Konu İçeriği
Neden Bu Karar Önemli?
100 mikro hizmet, 15 sunucu ve 2 milyon kullanıcı. Yanlış seçim aylarca süren bir migrasyon felaketi olabilir. Kubernetes pazar lideri — dünyadaki container orkestrasyonunun %92’si Kubernetes. Ama Docker Swarm’ın sadeliği çekici. Hangisi bizim için doğru?
Cloud Native Computing Foundation’ın 2025 anketine göre, kurumların %89’u Kubernetes kullanıyor ama bunların %45’i yönetim karmaşıklığından şikayet ediyor. Karmaşıklık mı güç mü? Bu testte cevap aradım.

Test Ortamı — Nasıl Kuruldum?
Her iki sistemi de aynı donanım üzerinde test ettim:
- 15 sunucu (4 CPU, 16 GB RAM, 500 GB SSD)
- 100 mikro hizmet (Go, Python, Node.js karışık)
- Ortalama container başına 200 MB RAM
- Ölçülen metrikler: deploy süresi, kaynak kullanımı, ölçeklenebilirlik, hata kurtarma
5 Kriterde Karşılaştırma
1. Kurulum Süresi
Docker Swarm: 2 saat. 3 komutla cluster kuruldu — docker swarm init, docker swarm join, stack deploy. Basit ve hızlı.
Kubernetes: 2 gün. kubeadm ile cluster kurulumu, CNI plugin seçimi, storage sınıfı tanımı, RBAC ayarları… Her adımda bir karar vermeniz gerekiyor. Managed Kubernetes (EKS, GKE) kullansaydık 4 saat sürerdi ama self-hosted tam 2 gün.
2. Deploy Hızı
| Metrik | Docker Swarm | Kubernetes |
|---|---|---|
| 100 uygulama deploy | 8 dakika | 12 dakika |
| Tek uygulama güncelleme | 15 saniye | 25 saniye |
| Rollback süresi | 10 saniye | 20 saniye |
| Sıfır kesintili deploy | Basit | Karmaşık (strategy gerekli) |
Swarm daha hızlı ama fark küçük. Kubernetes’in yavaşlığı, daha fazla kontrol mekanizmasından kaynaklanıyor — bu bir özellik, bir hata değil.
3. Kaynak Kullanımı
Kubernetes’in control plane’i Swarm’dan daha ağır:
- Docker Swarm overhead: Her node ~200 MB RAM
- Kubernetes overhead: Her node ~800 MB RAM (kubelet, kube-proxy, etc.)
15 sunucuda Kubernetes’in overhead’i: 15 x 600 MB = 9 GB RAM sadece orkestrasyon için. Swarm’da bu 3 GB. 6 GB fark, küçük bir cluster için önemli.
4. Ölçeklenebilirlik
100 container’dan 500’ye ölçekledim:
- Docker Swarm: 45 saniyede 500 container. Hızlı ama sınırlı kontrol.
- Kubernetes: 90 saniyede 500 container. HPA (Horizontal Pod Autoscaler) ile otomatik ve kademeli.
Kubernetes’in yavaşlığı bilinçli — pod’ların健康 durumunu kontrol ederek ölçekliyor. Swarm ise direkt scale ediyor. Prodüksiyonda Kubernetes’in yaklaşımı daha güvenli.

5. Hata Kurtarma
Bir node’u kasıtlı kapattım:
- Docker Swarm: 45 saniyede container’ları başka node’a taşındı. Basit ve etkili.
- Kubernetes: 60 saniyede pod’lar yeniden planlandı. Daha fazla kontrol — PDB (Pod Disruption Budget) ile kritik hizmetlerin önceliğini ayarlayabiliyorsunuz.
İkisi de iyi ama Kubernetes daha sofistike kontrol sunuyor.
Nihai Karar — Hangisini Seçtik?
Kubernetes’i seçtik. Neden?
- Ekosistem: Prometheus, Grafana, Istio, Helm — Kubernetes ekosistemi çok zengin.
- Auto-scaling: HPA ve VPA ile otomatik ölçeklendirme ihtiyacımız vardı.
- Rolling updates: Sıfır kesintili deploy stratejileri kritikti.
- Topluluk: Sorun yaşadığınızda Kubernetes kaynak bulmak çok kolay, Swarm giderek azalıyor.
- Gelecek: Docker Swarm geliştirilmiyor neredeyse. Kubernetes pazar standardı.
Ama Swarm’ı küçümsemiyorum — 20’den az mikro hizmetiniz ve küçük bir ekibiniz varsa Swarm daha mantıklı. Kubernetes’in karmaşıklığı 100 altındaki deployment’lar için gereksiz.
Kubernetes Öğrenme Eğrisi — 3 Ay
Kubernetes’i öğrenmek 3 ayımı aldı. İlk ay sadece kavramlar: pod, service, deployment, ingress. İkinci ay practice: helm chart’lar yazmak, RBAC ayarlamak. Üçüncü ay prodüksiyon: monitoring, alerting, disaster recovery.
Kavramsal olarak zor ama bir kez anladığınızda mantığı güzel. Her şey YAML ile tanımlanıyor ve versiyon kontrol edilebiliyor. Infrastructure as Code’un en iyi örneği.
Sıkça Sorulan Sorular
Küçük projeler için Kubernetes过度 mi?
10’dan az mikro hizmetiniz varsa evet. Docker Compose veya Swarm yeterli. Kubernetes’in overhead’i küçük projelerde maliyetli.
Managed Kubernetes (EKS/GKE) değer mi?
Self-hosted’a göre kesinlikle evet. Control plane yönetimini cloud sağlayıcıya bırakırsınız ve 2 günlük kurulum 4 saate iner. Maliyet biraz yüksek ama operasyonel yük azalır.
Docker Swarm ölü mu?
Mirai Group Swarm’ı bakımda tutuyor ama aktif geliştirme yok. Yeni özellik eklenmiyor. Küçük projeler için hâlâ çalışıyor ama uzun vadede Kubernetes’e geçiş kaçınılmaz.
100 mikro hizmet Kubernetes’te kaç sunucu gerektirir?
Ortalama 200 MB RAM/container ile 100 container = 20 GB RAM. Control plane + overhead ile 12-15 sunucu (4 CPU, 16 GB RAM) yeterli.
Sonuç
100 uygulama ile Kubernetes ve Docker Swarm’ı test ettim. Swarm basit ve hızlı, Kubernetes karmaşık ama güçlü. Biz Kubernetes’i seçtik çünkü ekosistem, ölçeklenebilirlik ve gelecek garanti veriyor. Ama 20’den az uygulamanız varsa Swarm’ı küçümsemeyin — basitlik de bir erdemdir.
Eğer orkestrasyon kararı veriyorsanız, önce ölçeğinizi belirleyin: 50+ mikro hizmet = Kubernetes, 50 altı = Swarm veya Compose. Ölçeğe göre araç seçin, araca göre ölçek değil.


