Gezintiyi Atla

Kubernetes - Docker

Birlikte daha iyi çalışan kapsayıcı teknolojileri sayesinde uygulamaları daha hızlı bir şekilde derleyin, teslim edin ve ölçeklendirin.

Kubernetes - Docker sorusu

Kubernetes ile Docker söz konusu olduğunda genellikle şu soru sorulur: Kubernetes'i mi yoksa Docker'ı mı kullanmalıyım? Bu elmayla elmalı turtayı karşılaştırmak gibidir ve genellikle birinden birini seçmeniz gerektiği gibi yaygın bir yanlış anlama söz konusudur.

Kubernetes ile Docker arasındaki farkı anlamak için asıl sorulması gereken, ikisinin de birlikte kullanılmasının gerekip gerekmediğidir. Aslında aralarında seçim yapmanıza gerek yoktur. Kubernetes ve Docker kapsayıcılı uygulama derleme, teslim etme ve ölçeklendirme aşamasında iyi çalışan tamamen farklı teknolojilerdir.

Docker ve kapsayıcı kullanımının yaygınlaşması

Docker, uygulamaların dağıtımını bulutta veya şirket içi ortamda çalışabilen taşınabilir ve kendi kendine yeten kapsayıcılar şeklinde otomatikleştirmeyi sağlayan bir açık kaynak teknolojisi ve kapsayıcı dosya biçimidir. Aynı ada sahip olan Docker, Inc. ise açık kaynak Docker teknolojisinin Microsoft gibi bulut sağlayıcılarında Linux ve Windows üzerinde çalışmasını sağlayan şirketlerden biridir.

Ortamları yalıtma fikrinin yeni bir yaklaşım olmamasına ve farklı kapsayıcılı hale getirme yazılımları mevcut olmasına rağmen Docker son yıllarda varsayılan kapsayıcı biçimi olarak kullanılmaya başlanmıştır. Docker'da bir çalışma zamanı ortamı olan Docker Engine bulunur. Bu ortam, herhangi bir geliştirme makinesinde kapsayıcı oluşturup çalıştırmanızı ve ardından kapsayıcı görüntülerini Docker Hub veya Azure Container Registry gibi bir kapsayıcı kayıt defteri ile depolamanızı veya paylaşmanızı sağlar.

Uygulamalar büyüyerek farklı sunuculara dağıtılmış birden çok kapsayıcıya yayılır hale geldiğinde bunları çalıştırmak daha da karmaşıklaşır. Docker, kapsayıcılı uygulamaların paketlenip dağıtılması için açık bir standart sağlar ancak bu durum kısa sürede karmaşık bir hal alabilir. Çok sayıda kapsayıcı nasıl koordine edilir ve zamanlanır? Uygulamanızdaki farklı kapsayıcılar nasıl iletişim kurabilir? Çok sayıda kapsayıcı örneğini nasıl ölçeklendirebilirsiniz? Kubernetes bu aşamada yardımcı olabilir.

Kubernetes ve kapsayıcı düzenleme

Kubernetes, kapsayıcıların çalışma şeklini ve yerini denetlemeye yönelik bir API sunan açık kaynak düzenleme yazılımıdır. Docker kapsayıcılarını ve iş yüklerini çalıştırmanızı sağlayan bu yazılım, farklı sunuculara dağıtılmış birden fazla kapsayıcıyı ölçeklendirme sırasında karşılaşabileceğiniz sorunların bazılarını çözmenize yardımcı olur.

Kubernetes bir sanal makine kümesini düzenlemenizi, kapsayıcıları kullanılabilir işlem kaynaklarına ve her bir kapsayıcının kaynak gereksinimlerine bağlı olarak bu sanal makinelerde çalışacak şekilde zamanlamanızı sağlar. Kapsayıcılar, Kubernetes için temel işlem birimi olan podlar halinde gruplandırılır. Bu kapsayıcı ve podları istediğiniz şekilde ölçeklendirip bunların yaşam döngüsünü yöneterek uygulamalarınızı çalışır halde tutabilirsiniz.

Kubernetes ile Docker arasındaki fark nedir?

Kubernetes ile Docker sık sık karşılaştırılsa da Kubernetes ile Docker Swarm'u karşılaştırmak daha doğru olacaktır. Docker Swarm, Docker'ın Docker kapsayıcılarıyla oluşturulan kümelere yönelik bir düzenleme teknolojisidir. Docker ekosistemiyle sıkı bir şekilde tümleştirilmiş olan bu teknoloji kendi API'sini kullanır.

Kubernetes ile Docker arasındaki temel fark Kubernetes'in küme üzerinde, Docker'ın ise tek bir düğüm üzerinde çalışacak şekilde tasarlanmış olmasıdır. Kubernetes, Docker Swarm'dan daha geniş kapsamlıdır ve üretim ortamındaki düğümleri uygun ölçekte ve verimli bir şekilde koordine etmesi amaçlanmaktadır. Kubernetes ekosistemindeki bir veya daha fazla kapsayıcıyı içerebilen zamanlama birimleri olan podlar, yüksek erişilebilirlik sağlamak için farklı düğümlere dağıtılır.

Kubernetes ve Docker: Birlikte daha iyi

Kapsayıcılar, bir kez kod yazdıktan sonra bunu her yerde çalıştırma imkanı sunuyor olsa da Kubernetes, tüm kapsayıcı kaynaklarınızı tek bir kontrol düzleminden düzenleme ve yönetme potansiyeline sahiptir. Kapsayıcılarınızı çalıştıran tüm Kubernetes düğümlerinde ağ iletişimi, yük dengeleme, güvenlik ve ölçeklendirme konusunda destek olur. Kubernetes ayrıca kapsayıcı kaynaklarınızı izinlere, hazırlık ortamlarına ve daha fazlasına göre gruplamanızı sağlayan ad alanı gibi yalıtım mekanizmalarına sahiptir. Bu yapılar, BT çalışanlarının geliştiricilere self servis kaynak erişimi sunmasını ve geliştiricilerin de uygulamanın tamamını geliştirme ortamında taklit etmelerine gerek kalmadan en karmaşık mikro hizmetler mimarisinde dahi ortak çalışmasını kolaylaştırır. DevOps uygulamalarını kapsayıcılar ve Kubernetes ile bir arada kullanmak bulutta yerel uygulamaların hızlı teslim edilmesini ve ölçeklenebilir bir şekilde yönetilmesini sağlayan bir mikro hizmetler mimarisi temelini oluşturur.

Kısacası Kubernetes ile Docker'ı şu amaçlar için birlikte kullanabilirsiniz:

  • Altyapınızı daha sağlam, uygulamanızı da daha yüksek kullanılabilir hale getirin. Düğümlerin bazıları çevrimdışı olsa dahi uygulamanız çevrimiçi kalır.
  • Uygulamanızı daha fazla ölçeklenebilir hale getirin. Uygulamanız daha fazla yükle karşılaşırsa ve daha iyi bir kullanıcı deneyimi sunmak için ölçeği genişletmeniz gerekirse kolayca daha fazla kapsayıcı çalıştırabilir veya Kubernetes kümenize daha fazla düğüm ekleyebilirsiniz.

Kubernetes ve Docker birlikte çalışır. Docker, kapsayıcılı uygulamaların paketlenip dağıtılması için açık bir standart sağlar. Docker’ı kullanarak kapsayıcı oluşturup çalıştırabilir, kapsayıcı görüntülerini depolayıp paylaşabilirsiniz. Kubernetes kümesinde Docker derlemesi çalıştırmak oldukça kolaydır ancak Kubernetes tek başına eksiksiz bir çözüm değildir. Kubernetes'i üretim ortamına uygun olacak şekilde iyileştirmek için güvenlik, idare, kimlik ve erişim yönetimine yönelik ek araç ve hizmetlerin yanı sıra sürekli tümleştirme/sürekli dağıtım (CI/CD) iş akışlarını ve diğer DevOps uygulamalarını kullanmanız gerekir.

Üretim ortamında Kubernetes ve Docker çözüm mimarileri

AKS ile mikro hizmetler

Mikro hizmetlere dayalı bir mimarinin dağıtımını ve yönetimini basitleştirmek için AKS kullanın. AKS yatay ölçeklendirmeyi, kendi kendine onarımı, yük dengelemeyi ve gizli dizi yönetimini rahatlatır.

Secure DevOps for AKS

DevOps ve Kubernetes birlikte daha iyi. Azure üzerinde Kubernetes ile güvenli DevOps birlikte kullanıldığında, hız ve güvenlik dengesini sağlayabilir ve ölçeğe göre, daha hızlı bir şekilde kod dağıtabilirsiniz.

;

Azure ile Kubernetes’in güçlü yanlarını temel alıp bunları geliştirin

Azure Kubernetes Service (AKS) ile kapsayıcılı uygulamalarınızı dağıtmak ve yönetmek oldukça kolaydır. AKS sunucusuz Kubernetes, tümleşik CI/CD deneyimi, kurumsal sınıf güvenlik ve idare olanağı sunar. Uygulamaları hızla derlemek, teslim etmek ve güvenle ölçeklendirmek için dağıtım ve operasyon ekiplerinizi tek bir platformda birleştirin.

Kubernetes ve Docker'ı kullanmaya başlama