Blog
Çok Kiracılı Docker Mimarisi Tasarlamak: Doğru Yalıtım Seviyesini Seçmek
Çok kiracılı barındırma için paylaşımlı ve izole Docker yapılandırmaları arasında seçim yapmaya yönelik pratik bir rehber; ödünleşimler ve güvenlik hususları ile.

Özet
Çok kiracılı Docker barındırma, maliyet, karmaşıklık ve yalıtım arasında denge kurmayı gerektirir. Paylaşımlı konteynerler ucuzdur ancak konteyner kaçışı riski taşır; kiracı başına ayrı yığınlar daha yüksek maliyetle güçlü yalıtım sağlar. Bu makale, üç yaygın mimariyi ele alır: tek Docker daemon ile ad alanları, kiracı başına Docker-in-Docker ve kiracı başına ayrı VM'ler. Kiracı gereksinimlerinizi nasıl değerlendireceğinizi, kaynak sınırlarını nasıl uygulayacağınızı ve konteynerleri sağlamlaştırmak için salt okunur dosya sistemlerini nasıl kullanacağınızı öğreneceksiniz. Ayrıca, çok kiracılı dağıtımları yönetmek için Kubernetes ve Docker Swarm gibi orkestrasyon araçlarını da ele alıyoruz. Sonunda, kullanım durumunuz için doğru yalıtım seviyesini seçmek üzere bir karar çerçevesine sahip olacaksınız. Uyarılar arasında performans yükü ve operasyonel karmaşıklık yer alır. Sonuç, paylaşımlı çekirdek yalıtımının düşük riskli kiracılar için kabul edilebilir olduğunu, ancak hassas iş yükleri için güçlü yalıtımın (paylaşımlı çekirdek olmadan) gerekli olduğunu vurgular.
Docker üzerinde çok kiracılı bir SaaS platformu çalıştırdığınızda, en büyük mimari karar, kiracılar arasında ne kadar yalıtım uygulanacağıdır. Çok az yalıtım, tek bir güvenliği ihlal edilmiş konteynerin tüm müşteri tabanınız genelinde veri sızdırmasına neden olabilir. Çok fazla yalıtım ise konteynerlerin vaat ettiği maliyet ve operasyonel faydaları ortadan kaldırır.
Bu makale size pratik bir karar çerçevesi sunar: kiracılarınızın güven seviyelerini değerlendirin, bir yalıtım mimarisi seçin, konteynerlerinizi sağlamlaştırın ve ölçekte orkestre edin. Somut ödünleşimler ve güvenli bir şekilde dağıtmak için adım adım bir planla ayrılacaksınız.
Adım 1: Kiracı Güvenini ve Hassasiyetini Değerlendirin
Tüm kiracılar eşit değildir. Ücretsiz kullanıcılar paylaşımlı altyapı ile sorunsuz çalışabilirken, kurumsal müşteriler güçlü garantiler talep eder. Kiracıları üç seviyeye ayırın:
- Düşük güven (ör. anonim deneme kullanıcıları): minimum yalıtım kabul edilebilir, en yüksek kötüye kullanım riski.
- Orta güven (ör. doğrulanmış müşteriler): kazara müdahaleyi önlemek için orta düzeyde yalıtım gerekir.
- Yüksek güven (ör. SLA'lı sözleşmeler): güçlü yalıtım gerekli – muhtemelen ayrı VM'ler.
Ayrıca veri hassasiyetini de göz önünde bulundurun: kiracılar PII veya finansal veri depoluyorsa, daha güçlü yalıtıma yönelin. Bu sınıflandırma sonraki her kararı yönlendirir.
Adım 2: Yalıtım Mimarisi Seçin
Seçenek A: Linux Ad Alanları ile Paylaşımlı Docker Daemon (En Ucuz, En Zayıf Yalıtım)
Tüm kiracılar aynı ana makinede ve aynı Docker daemon'da konteyner olarak çalışır. Yalıtım tamamen çekirdek ad alanlarına ve cgroup'lara dayanır. Bu varsayılan Docker modelidir.
Artılar: En düşük yük, yönetimi kolay, ek araç gerektirmez. Dahili araçlar veya kritik olmayan çok kiracılı kullanım için harika.
Eksiler: Bir çekirdek güvenlik açığı yalıtımı kırabilir. Kötü niyetli bir kiracı konteyner kaçışı deneyebilir. Kaynak rekabeti gerçektir – gürültülü bir komşu diğerlerini aç bırakabilir.
Ne zaman kullanılmalı: Geçici verilere sahip düşük güvenli kiracılar, örn. demo ortamları veya CI/CD çalıştırıcıları.
Seçenek B: Kiracı Başına Docker-in-Docker (Orta Yalıtım, Orta Maliyet)
Her kiracı, bir konteyner içinde kendi Docker daemon'ını alır (Docker-in-Docker – DinD). Bu, ayrı bir konteyner yaşam döngüsü sağlar ve bir kiracının diğerinin konteynerlerini görmesini engeller.
Artılar: Paylaşımlı daemon'dan daha iyi yalıtım; her kiracı kendi Docker Compose yığınını çalıştırabilir. Kiracıların kendi konteynerlerini oluşturması ve yönetmesi gerektiğinde kullanışlıdır.
Eksiler: DinD'nin bilinen sorunları vardır – iç içe depolama sürücüleri sorunlara neden olabilir ve yine de ana makine çekirdeğini paylaşırsınız. İç içe katmanlar nedeniyle performans yükü %10-20 olabilir. Güvenlik mükemmel değildir; DinD konteynerinden bir konteyner kaçışı yine de ana makineye yol açar.
Ne zaman kullanılmalı: Kendi hizmetlerini oluşturması gereken orta güvenli kiracılar, örn. kullanıcıların özel web uygulamaları dağıtmasına izin veren bir platform.
Seçenek C: Kiracı Başına Ayrı VM'ler (En Güçlü Yalıtım, En Yüksek Maliyet)
Her kiracı, ayrılmış bir sanal makinede, içinde Docker ile çalışır. Hypervisor, donanım düzeyinde yalıtım sağlar – hiçbir çekirdek paylaşımı yoktur.
Artılar: En güçlü yalıtım – konteyner kaçışı yalnızca VM'ye ulaşır, diğer kiracılara değil. PCI-DSS ve HIPAA gibi uyumluluk gereksinimlerini karşılar. Performans yalıtımı neredeyse mutlaktır.
Eksiler: Yüksek yük (kiracı başına tam işletim sistemi), daha yavaş sağlama, daha fazla yönetim karmaşıklığı. Konteynerlerin yoğunluk avantajını kaybedersiniz.
Ne zaman kullanılmalı: Hassas verilere sahip yüksek güvenli kiracılar veya ihlalin felaket olacağı herhangi bir kiracı.
Adım 3: Tüm Mimarilerde Konteynerleri Sağlamlaştırın
Hangi mimariyi seçerseniz seçin, bu güvenlik uygulamalarını evrensel olarak uygulayın:
- Güvenilir, minimum temel görüntüler (örn. Alpine, distroless) kullanın – saldırı yüzeyini azaltmak için.
- Konteynerleri root olmayan kullanıcı olarak çalıştırın – konteyner içinde asla root olarak çalıştırmayın. Dockerfile'da
USERayarlayın. - Konteyner spesifikasyonunda salt okunur kök dosya sistemi etkinleştirin; yalnızca veri için yazılabilir dizinler bağlayın.
- Kaynak sınırları
--memory,--cpusile ayarlayın – gürültülü komşu sorunlarını önlemek için. - Ağ iletişimini sınırlayın: kullanıcı tanımlı köprü ağları kullanın ve yalnızca gerekli portları açığa çıkarın.
Çok kiracılı senaryolar için ayrıca şunları uygulayın:
- Ağ geçidinde kiracı başına API hız sınırlaması.
- Tüm konteyner eylemlerinin denetim günlüğü.
Konteyner kaçışını önleme konusunda daha derinlemesine bilgi için, Kapsayıcı Kaçışına Karşı Savunma kılavuzumuza bakın.
Adım 4: Çok Kiracılı Dağıtımları Orkestre Edin
Birçok konteynerin manuel yönetimi hızla yönetilemez hale gelir. Bir orkestratör kullanın:
- Docker Swarm en basitidir: yerel Docker entegrasyonu, yerleşik yük dengeleme ve sır yönetimi. Küçük ve orta ölçekli dağıtımlar için idealdir. Her kiracının yığınını etiketler ve kısıtlamalar kullanarak özel düğümlere yerleştirebilirsiniz.
- Kubernetes, ad alanları, NetworkPolicy ve PodSecurityPolicy aracılığıyla daha gelişmiş yalıtım sunar. Ancak önemli ölçüde karmaşıklık ekler. Operasyonel yükü azaltmak için yönetilen Kubernetes (GKE, EKS) düşünün.
- HashiCorp Nomad, Docker ve konteyner olmayan iş yüklerini destekleyen daha hafif bir alternatiftir.
Üretime hazır bir orkestrasyon kurulumu için Docker Compose'un Ötesinde: Üretime Hazır Konteynerize Uygulamaları Orkestre Etme makalesini okuyun.
Uyarılar ve Ödünleşimler
- Performans yükü: DinD, %10-15 CPU/bellek yükü ekleyebilir. VM'ler, bare-metale kıyasla %5-10 ekler ancak konteynerlerden daha fazladır. Gerçekçi yük altında test edin.
- Operasyonel karmaşıklık: Ayrı VM'ler, işletim sistemi güncellemelerini, hipervizör yamalarını ve VM yaşam döngülerini yönetmeyi gerektirir. DinD, depolama sürücüleriyle ilgili sorunlar çıkarır (overlay2 içinde overlay2 desteklenmez;
--storage-driver vfskullanın ancak yavaştır). - Uyumluluk: PCI-DSS gerekiyorsa, paylaşımlı çekirdek mimarileri genellikle kabul edilmez. Uygun segmentasyon ile VM'ler kullanın.
- Maliyet: Paylaşımlı Docker daemon neredeyse hiç ek maliyet getirmez. DinD biraz daha fazla CPU/bellek maliyeti. VM'ler, lisanslama ve kaynaklar nedeniyle kiracı başına 2-5 kat daha pahalı olabilir.
Sonuç: Karar Çerçeveniz
| Güven Seviyesi | Önerilen Mimari | Ana Uyarılar | |----------------|-----------------|--------------| | Düşük | Paylaşımlı Docker daemon | Konteyner kaçışı riskini kabul edin; hız sınırlaması ve denetim uygulayın. | | Orta | Kiracı başına DinD | İç içe depolamayı yönetin; kiracı başına güvenlik gruplarını düşünün. | | Yüksek | Docker ile ayrı VM'ler | Ekstra bilgi işlem için bütçe ayırın; VM sağlamayı otomatikleştirin (örn. Terraform). |
Birçok SaaS şirketi için hibrit bir yaklaşım işe yarar: ücretsiz katmanlar için paylaşımlı daemon, ödeme yapan müşteriler için DinD ve kurumsal müşteriler için VM'ler kullanın. Bu, riskin düşük olduğu yerlerde maliyet verimliliği ve gerektiğinde güçlü yalıtım sağlar.
Unutmayın: yalıtım bir spektrumdur, ikili bir seçim değildir. Amaç, koruma seviyesini verinin değeri ve kiracının güvenilirliği ile eşleştirmektir. Güvenlik gereksinimlerinizi karşılayan en basit seçenekle başlayın ve ihtiyaç duydukça geliştirin.
Konteyner yapılandırmalarını kilitlemeye yönelik ek en iyi uygulamalar için Web Uygulamalarınızı Docker ile Güvence Altına Alma: Yalıtım ve En İyi Uygulamalar için Pratik Bir Kılavuz bölümüne bakın.
Sources (5)
- 18 Best Container Orchestration Tools and Services in 2026
- Best 10 Docker Container Hosting Platforms in 2026
- Top 9 Container Orchestration Platforms In 2026 (Expert Picks)
- 10 Platforms to Know for Container Orchestration and Governed Data Operations in 2026
- Implementing Security Best Practices in Docker Containers
