Kubernetes ile Docker arasındaki fark nedir?

Docker, uygulamaları geleneksel yöntemlerden daha hızlı şekilde geliştirmenize, test etmenize ve dağıtmanıza olanak tanıyan bir container çalışma zamanı teknolojisidir. Yazılımları kitaplıklar, sistem araçları ve kod dahil olmak üzere yazılımların çalışması için gerekli her şeyle birlikte container adlı standartlaştırılmış birimler halinde paketler. Kubernetes, container'ları geniş ölçekte yönetebilmeniz, koordine edebilmeniz ve planlayabilmeniz için container sistemlerinizi ölçeklendirmenize olanak tanıyan bir container düzenleme aracıdır.

Kubernetes ve Docker nerede kullanılır?

Hem Kubernetes hem de Docker, birer container teknolojisidir. Modern uygulamalar, her bir uygulama işlemini bir hizmet olarak çalıştıran bağımsız bileşenler olan mikro hizmetlerden oluşur. Her hizmet tek bir işlev gerçekleştirir ve diğer hizmetlerle API adı verilen iyi tanımlanmış bir arabirim aracılığıyla iletişim kurar. Container'lı hale getirme, mikro hizmetleri farklı platformlarda dağıtılabilir programlar olarak paketlemek için kullanılacak yazılım aracını sağlar.

Mikro hizmetler hakkında bilgi edinin »

Containler'lı hale getirme hakkında bilgi edinin »

Container oluşturma

Docker, son yıllarda popülerlik kazanmış açık kaynaklı bir container çalışma zamanıdır. Container'ları kolay ve verimli bir şekilde oluşturmak için bir araç seti sunar. Geliştiriciler, her bir mikro hizmetin gerektirdiği sistem kitaplıklarını, araçları, kodu ve diğer yazılım yapılandırmalarını kapsayan bir container görüntü dosyası oluşturmak için komutlar çalıştırır. Her mikro hizmet kendi Docker görüntüsüne sahiptir. Docker görüntüsünü kullanarak mikro hizmeti herhangi bir ortamda çalıştırabilirsiniz.

Container'ları yönetme

Çoğu uygulama, birkaç mikro hizmetten oluşur. Bunlardan bazıları, farklı sunucularda çalışan binlerce mikro hizmete ölçeklenebilir. Çok container'lı uygulamalar, beraberinde yeni yönetim zorlukları getirir:

  • Birden fazla container'ı nasıl koordine etmelisiniz?
  • Container'ları nasıl planlamalısınız?
  • Container'ları nasıl gruplandırmalı ve kataloglamalısınız?

Geliştiriciler, bu zorlukların üstesinden gelmek için Kubernetes gibi container düzenleme platformlarından yararlanır. Kubernetes, container'ları geniş ölçekte yönetmenize olanak tanıyan açık kaynaklı bir teknolojidir. İş yüklerinizi ölçeklendirebilmeniz ve birden fazla sunucudaki container dağıtımını yönetebilmeniz için operasyon karmaşıklıklarını yönetir.

Temel farklılıklar: Kubernetes ve Docker

Hem Kubernetes hem de Docker, açık kaynaklı container teknolojileridir. Bununla birlikte, çalışma şekilleri ve container'lı uygulamaları dağıtmada oynadıkları rol açısından önemli farklılıklar gösterirler. Geliştiriciler, container görüntülerini oluşturmak ve işlemek için Docker'ı kullanır. Birden fazla mikro hizmeti geniş ölçekte yönetmek için ise Kubernetes'ten yararlanırlar. Her mikro hizmet, kendi başına birden fazla container'dan oluşur.

Operasyonlar

Docker terimi, aslında geliştiricilerin container'lı uygulamalar oluşturmak, paylaşmak ve çalıştırmak için kullandıkları bir dizi aracı ifade eder. Kullanabileceğiniz Docker komutlarından bazıları şunlardır:

  • Container görüntüleri oluşturmak için Docker Build'i kullanın
  • Çok container'lı uygulamaları tanımlamak ve çalıştırmak için Docker Compose'u kullanın
  • Kod paylaşımı için GitHub'a benzer şekilde, container görüntülerini bulmak ve paylaşmak için Docker Hub'ı kullanın

Öte yandan, Kubernetes bir dizi işlem bulut sunucusunu yöneterek çalışır. Container'ları, erişilebilir işlem kaynaklarına ve her bir container'ın kaynak gereksinimlerine bağlı olarak kümede çalışacak şekilde planlar. Container'lar pod adı verilen mantıksal gruplar halinde çalıştırılır ve bir veya daha fazla container'ı birlikte bir pod olarak çalıştırabilir ve ölçeklendirebilirsiniz. Kaynak gereksinimlerine bağlı olarak Kubernetes kümenizde otomatik olarak ek pod'lar başlatabilirsiniz.

Temel teknoloji

Docker Engine, geliştiricilerin uygulamalarınızı oluşturmak ve container'lı hale getirmek için kullandığı bileşendir. Programların, iletişim kurmak ve talimat vermek için kullanabileceği arabirimleri belirleyen API'ler sunar. Benzer şekilde, Kubernetes de denetim düzlemi yazılımı, container pod'larının ne zaman ve nerede çalışacağına karar verir, trafik yönlendirmesini yönetir ve pod'larınızı kullanıma ve tanımladığınız diğer ölçümlere göre ölçeklendirir.

En büyük avantaj

Docker, geliştiricilerin uygulama ve hizmetlerinizi sunan yerel container'ları kullanarak standartlaştırılmış ortamlarda çalışmasına olanak tanıyarak geliştirme yaşam döngüsünü kolaylaştırır. Docker'ın container tabanlı platformu, iş yüklerinin yüksek oranda taşınabilmesini sağlar. Öte yandan Kubernetes, karmaşık container'lı uygulamaları tanımlamanıza ve bir sunucu kümesinde geniş ölçekte çalıştırmanıza olanak tanır.

Kubernetes ve Docker ne zaman kullanılır?

Docker ve Kubernetes, farklı kullanım örneklerine sahip iki farklı teknolojidir. Container geliştirmeyi çalıştırmak, düzenlemek ve yönetmek için Docker Desktop'ı kullanırsınız. Üretim sınıfı uygulamaları geniş ölçekte çalıştırmak için Kubernetes'i kullanırsınız.

Farklılıkların özeti: Kubernetes ve Docker Masaüstü

 

Özellikler

Kubernetes

Docker

Bu nedir?

Container düzenleme aracı.

Container'lar oluşturmak ve çalıştırmak için container teknolojileri yığını.

Kullanımı

Birden fazla sunucu genelinde birden fazla container'ı koordine edin.

Uygulamaları, kütüphanelerle ve çalışma zamanıyla birlikte container görüntülerine paketleyin.

Ana avantajı

Karmaşık container'lı uygulamaları geniş ölçekte tanımlayın ve çalıştırın.

Uygulama operasyonlarını standartlaştırın ve kodları daha hızlı bir şekilde gönderin.

AWS, container yönetim gereksinimlerinizi nasıl destekleyebilir?

AWS, şirket içinde veya bulutta olması fark etmeksizin temel container altyapınızı yönetmeyi kolaylaştıran bir dizi container hizmetine sahiptir. Container düzenlemesinden container'ları sunucuları yönetmeden çalıştırmaya kadar her şeyi yapabilirsiniz. Aşağıda birkaç örnek verilmiştir.

Amazon Esnek Container Hizmeti

Amazon Esnek Container Hizmeti (Amazon ECS), container'lı uygulamaları dağıtmanızı, yönetmenizi ve ölçeklendirmenizi kolaylaştıran, tam olarak yönetilen bir container düzenleme hizmetidir. AWS Bulut'ta Docker container'larını çalıştırmak için Kubernetes'i Amazon ECS ile değiştirebilirsiniz.

Kubernetes ile Amazon ECS Karşılaştırması

Amazon ECS, tek bir hizmette iki çözüm sunar: bir container düzenleme aracı ve ayrıca temel altyapı kaynaklarını otomatik olarak tedarik eden, tam olarak yönetilen bir hizmet. Bunun aksine Kubernetes, kaynakları bulutta veya şirket içinde tedarik etmenizi gerektirir.

Amazon Esnek Kubernetes Hizmeti

Amazon Esnek Kubernetes Hizmeti (Amazon EKS), AWS Bulut'ta ve şirket içi veri merkezlerinde Kubernetes iş yüklerini çalıştırmaya yarayan, yönetilen bir Kubernetes hizmetidir. Amazon EKS, bulutta container'ları planlama, uygulama erişilebilirliğini yönetme, küme verilerini depolama ve diğer temel görevlerden sorumlu Kubernetes denetim düzlemi düğümlerinin erişilebilirliği ve ölçeklenebilirliğini otomatik olarak yönetir.

AWS için sonraki adımlar

Kubernetes ile oluşturmaya başlayın

AWS' hizmeti üzerinde Kubernetes'i nasıl kullanmaya başlayacağınızı öğrenin

Daha fazla bilgi edinin 
Docker ile oluşturmaya başlayın

AWS hizmeti üzerinde Docker'ı nasıl kullanmaya başlayacağınızı öğrenin

Daha fazla bilgi edinin