Docker ne yapar?
Docker adı tek bir bileşenden fazlasını kapsar. Dockerfile bir image'ın nasıl oluşturulacağını tanımlar; Docker Build bu tanımı image'a dönüştürür; registry image'ı ekipler ve ortamlar arasında paylaşır; Docker Engine ise image'dan izole bir container süreci başlatır. Image uygulama dosyalarını, çalışma zamanını, kütüphaneleri ve yapılandırma varsayımlarını standart bir paket halinde taşır.
Bu akış geliştiricinin aynı image'ı dizüstü bilgisayarda, test ortamında ve üretim altyapısında kullanmasına yardımcı olur. Docker Compose ise birden fazla container, ağ ve volume tanımını tek bir uygulama dosyasında birleştirerek özellikle geliştirme ve tek host senaryolarını kolaylaştırır.
Kubernetes ne yapar?
Kubernetes hazır container image'larını alır ve bunları bir node kümesi üzerinde Pod olarak çalıştırır. Deployment gibi nesneler kaç kopya istenildiğini ve güncellemenin nasıl yapılacağını bildirir. Scheduler pod'ları uygun node'lara yerleştirir; controller bileşenleri gerçek durum ile tanımlanan durum arasındaki farkı sürekli düzeltir.
Service ve Ingress gibi kaynaklar erişimi düzenler; ConfigMap ve Secret yapılandırmayı image'dan ayırır; Persistent Volume yapısı kalıcı veri ihtiyacını karşılar. Kubernetes image oluşturmaz ve uygulama kodunu paketlemez. Onun sorumluluğu çalışır durumdaki container iş yüklerinin dağıtımı ve yaşam döngüsüdür.
Docker ve Kubernetes farkları
En temel ayrım kapsamdır. Docker geliştirme ekibinin image oluşturma, paylaşma ve container çalıştırma araçlarını sunar. Kubernetes ise çok sayıda uygulama örneğini, node'u, ağı, yapılandırmayı ve kalıcı depolamayı ortak bir deklaratif API ile koordine eder. Küme kurmak, güvenliğini sağlamak, gözlemlemek ve yükseltmek ek operasyon sorumluluğu getirir.
- Amaç: container üretme ve çalıştırma ile küme orkestrasyonu
- Kapsam: tek geliştirici veya host akışı ile çoklu node ortamı
- Tanım: Dockerfile ve Compose ile Kubernetes API nesneleri
- Ölçek: manuel container işlemleri ile deklaratif replica yönetimi
- Operasyon: uygulama paketi ile küme kontrol düzlemi ve iş yükü yaşam döngüsü
Docker ve Kubernetes birlikte nasıl kullanılır?
Yaygın akışta geliştirici bir Dockerfile ile image oluşturur, güvenlik ve işlev testlerini çalıştırır, image'ı bir registry'ye gönderir ve Kubernetes manifestinde bu image adresini kullanır. Kubernetes node üzerindeki CRI uyumlu container runtime aracılığıyla image'ı indirir ve Pod içindeki container'ı başlatır.
Kubernetes'in Docker Engine ile eski doğrudan entegrasyonu olan dockershim kaldırılmıştır. Bu değişiklik Docker ile oluşturulan image'ların Kubernetes'te çalışmasını engellemez. Image biçimi ile Kubernetes node'unda kullanılan runtime entegrasyonu farklı katmanlardır; node için containerd, CRI-O veya desteklenen başka bir CRI runtime yapılandırılır.
Docker Compose mu Kubernetes mi?
Docker Compose yerel geliştirme, demo, entegrasyon testi ve tek host üzerinde yönetilebilen küçük uygulamalar için daha az bileşenle hızlı bir başlangıç sağlar. Bir Compose dosyası servisleri, ağları, volume'ları ve ortam değişkenlerini birlikte tanımlar. Küme kontrol düzlemi veya çoklu node scheduler çalıştırmaz.
Birden fazla node, kontrollü rollout, self-healing, namespace ve politika tabanlı kaynak yönetimi gerektiğinde Kubernetes değerlendirilir. Her küçük uygulama Kubernetes gerektirmez. Ekip küme operasyonunun getirdiği öğrenme, gözlemlenebilirlik, güvenlik ve yükseltme yükünü iş gereksinimiyle karşılaştırmalıdır.
Yönetilen Kubernetes neyi azaltır?
Yönetilen Kubernetes hizmeti control plane kurulumu, erişilebilirliği ve bazı yaşam döngüsü işlemlerini sağlayıcı kapsamına alabilir. Ancak uygulama image'ı, manifestler, resource request ve limitleri, secret yönetimi, ağ politikaları, uygulama gözlemlenebilirliği ve veri koruma sorumlulukları hizmet kapsamına göre müşteride kalabilir.
VKE, vMind tarafından geliştirilen açık kaynak Kubernetes engine’dir. Node seviyesinde otomatik ölçeklendirme, Load Balancer ve storage class desteğini otomatik olarak sağlar. Desteklenen sürüm ve yükseltme modeli küme kurulumunda görünür; karar yine de uygulama sorumluluğuyla birlikte verilmelidir.
Kubernetes hakkında sık sorulan sorular
Docker ve Kubernetes aynı şey mi?
Hayır. Docker araçları container image oluşturma, paylaşma ve çalıştırmaya odaklanır. Kubernetes container'laştırılmış iş yüklerini bir node kümesi üzerinde dağıtır, ölçekler ve yönetir.
Kubernetes Docker olmadan çalışır mı?
Evet. Kubernetes node'ları CRI uyumlu bir container runtime gerektirir. containerd ve CRI-O yaygın seçeneklerdir. Docker Engine ile eski doğrudan dockershim entegrasyonu kaldırılmıştır.
Docker ile oluşturulan image Kubernetes'te çalışır mı?
Evet. Registry'ye gönderilen standart container image, node üzerindeki uyumlu runtime tarafından indirilebilir. Docker Engine entegrasyonunun kaldırılması Docker ile üretilen image'ların kullanımını kaldırmamıştır.
Docker Compose yerine Kubernetes gerekli mi?
Her zaman değil. Compose yerel geliştirme ve yönetilebilir tek host senaryoları için daha basittir. Çoklu node yerleşimi, deklaratif ölçekleme ve küme düzeyinde politikalar gerekiyorsa Kubernetes değerlendirilir.
Kubernetes image oluşturur mu?
Hayır. Kubernetes manifestte belirtilen hazır image'ı registry'den alıp çalıştırır. Image oluşturma işlemi Docker Build, BuildKit veya başka bir container build aracıyla CI/CD sürecinde yapılır.
Araştırma kaynakları
Teknik açıklamalar aşağıdaki birincil kaynaklara dayanır.
- Container image nedir?
Container image'ın dosya, binary, kütüphane ve yapılandırmaları paketleme biçimi.
- Yayıncı
- Docker Documentation
- Tür
- Resmi teknik dokümantasyon
- Erişim
- Kubernetes kavramları
Kubernetes'in container iş yüklerini yönetme ve otomasyon kapsamı.
- Yayıncı
- Kubernetes Documentation
- Tür
- Resmi teknik dokümantasyon
- Erişim
- Kubernetes container runtime rehberi
CRI runtime gereksinimi, containerd ve CRI-O seçenekleri ile dockershim'in kaldırılması.
- Yayıncı
- Kubernetes Documentation
- Tür
- Resmi teknik dokümantasyon
- Erişim
