Kubernetes nedir?

Tamamlandı

Mikro hizmetlerin ayrılmış tasarımı ve kapsayıcıların bölünmezliği, talebe yanıt veren uygulamaların ölçeğini genişletmeyi mümkün kılar. İnsansız hava aracı izleme uygulaması gibi karmaşık çözümlerde kapsayıcıları dağıtma, güncelleştirme, izleme ve kaldırma süreci zorluklara neden olabilir.

Kubernetes'tekilere bakmadan önce kapsayıcı yönetimi ve düzenleyiciler olarak anlamanız gereken iki kavram vardır.

Kapsayıcı yönetimi nedir?

Kapsayıcı yönetimi, önemli sayıda kapsayıcıyı düzenleme, ekleme, kaldırma veya güncelleştirme işlemidir.

İnsansız hava aracı izleme uygulaması önbelleğe alma, kuyruğa alma veya veri işleme gibi görevlerden sorumlu birden çok mikro hizmet içerir. Bu hizmetlerin her biri birbirinden bağımsız olarak dağıtılan, güncelleştirilen ve ölçeklendirilen bir kapsayıcıda barındırılır.

Diagram of a server or application replicated as containers for cloud deployment.

Örneğin, insansız hava aracı izleme uygulamasının web sitesinde günün belirli saatlerinde performansı korumak için sitenin önbelleğe alma hizmetinin daha fazla örneğine ihtiyacınız olduğunu fark edersiniz, böylece daha fazla önbelleğe alma hizmeti kapsayıcı örneği eklersiniz.

Ardından, önbelleğe alma örneklerinin sayısını artırdığınız ve mikro hizmetin yeni bir sürümünü kullanıma sunmanız gerektiğini varsayalım. Yeni sürümü kullanmak için tüm etkin kapsayıcıları güncelleştirmeniz gerekir.

Kapsayıcı yönetimi, bu el ile yinelenen görevler konusunda size yardımcı olur.

Kapsayıcı düzenleyici nedir?

Kapsayıcı düzenleyicisi, kapsayıcılı uygulamaları otomatik olarak dağıtıp yöneten bir sistemdir. Yönetimin bir parçası olarak düzenleyici, uygulamanın dağıtılan örneklerinin sayısını artırmak veya azaltmak için ortamdaki dinamik değişiklikleri ölçeklendirmeyi işler. Ayrıca, bir hizmetin yeni bir sürümü yayımlandığında dağıtılan tüm kapsayıcı örneklerinin güncelleştirilmesini sağlar.

Diagram showing how number of deployed container instances is automatically increased if demand rises and how an orchestrator ensures all deployed instances are updated with the latest software version.

Kubernetes'in tanımı

Kubernetes, kapsayıcılı iş yüklerini yönetmeniz ve düzenlemeniz için taşınabilir, genişletilebilir bir açık kaynak platformudur. Kubernetes, karmaşık kapsayıcı yönetimi görevlerini basitleştirir ve size farklı bilgi işlem ortamlarındaki kapsayıcıları düzenlemeye yönelik bildirim temelli yapılandırma sağlar. Bu düzenleme platformu, hizmet olarak platform (PaaS) veya hizmet olarak altyapı (IaaS) tekliflerinden zaten bildiğiniz kullanım kolaylığı ve esnekliği sağlar.

Diagram of replicated servers as multiple containers in a Kubernetes cluster.

Kubernetes’in avantajları

Kubernetes kullanmanın avantajları, görevlerin soyutlanmasını temel alır.

Diagram that lists three Kubernetes benefits: self-healing, dynamic scaling, and rolling updates.

Bunlar aşağıdakileri içerebilir:

  • Kapsayıcıların kendi kendini düzeltmesi; Örneğin, başarısız olan kapsayıcıları yeniden başlatma veya kapsayıcıları değiştirme

  • Dağıtılan kapsayıcı sayısını isteğe bağlı olarak dinamik olarak artırma veya azaltma

  • Kapsayıcıların sıralı güncelleştirmelerini ve geri almalarını otomatikleştirme

  • Depolamayı yönetme

  • Ağ trafiğini yönetme

  • Kullanıcı adları ve parolalar gibi hassas bilgileri depolama ve yönetme

Önemli

Kubernetes’in yukarıda bahsedilen özelliklerinin tamamının yapılandırılması ve temelindeki teknolojilerin iyice anlaşılması gerektiğini unutmayın. Örneğin Kubernetes ağını yapılandırmak için sanal ağlar, yük dengeleyiciler, ters ara sunucular gibi kavramları anlamanız gerekir.

Kubernetes konuları

Kubernetes sayesinde veri merkezinizi tek bir büyük işlem kaynağı olarak görebilirsiniz. Kapsayıcılarınızı nasıl ve nerede dağıttığınızı düşünmeniz gerekmez, yalnızca uygulamalarınızı gerektiği gibi dağıtma ve ölçeklendirme konusunda endişelenmeniz gerekmez.

Diagram that shows a list of Kubernetes components that including monitoring, microservices, databases, and the Docker runtime.

Ancak Kubernetes’in kapsayıcılı bir çözümü yönetmek ve düzenlemek için gerekli olan tüm bileşenlerle birlikte yüklenen tek bir uygulama olmadığını anlamanız önemlidir:

  • Dağıtım, ölçeklendirme, yük dengeleme, günlük ve izleme gibi yönlerinin tümü isteğe bağlıdır. Bu yönlerle ilgilenmek için ihtiyaçlarınıza en uygun çözümü bulmak sizin sorumluluğunuzdadır.

  • Kubernetes, platformda çalıştırılabilecek uygulama türlerine sınırlama getirmez. Uygulamanız kapsayıcıda çalıştırılabiliyorsa Kubernetes üzerinde de çalıştırılabilir. Kapsayıcılı çözümlerini en iyi şekilde kullanmak için geliştiricilerinizin mikro hizmet mimarisi gibi kavramları anlaması gerekir.

  • Kubernetes ara yazılım, veri işleme çerçeveleri, veritabanları, önbellekler veya küme depolama sistemleri sağlamaz. Bu öğelerin tümü kapsayıcı olarak veya başka bir hizmet teklifinin parçası olarak çalıştırılır.

  • Kubernetes'in kapsayıcıları çalıştırması için Docker veya containerd gibi bir kapsayıcı çalışma zamanı gerekir. Kapsayıcı çalışma zamanı, kapsayıcıları yönetmekten sorumlu nesnedir. Örneğin kapsayıcı çalışma zamanı başlatılır, durdurulur ve kapsayıcının durumu hakkında bilgiler verir.

  • Kubernetes ortamınızı sürdürmekten siz sorumlusunuz. Örneğin işletim sistemi yükseltmelerini ve Kubernetes yüklemesiyle yükseltmelerini yönetmeniz gerekir. Ayrıca konak makinelerin ağ, bellek ve depolama gibi donanım yapılandırmasını da siz yönetirsiniz.

Azure Kubernetes Service (AKS) gibi bulut hizmetleri, barındırılan bir Kubernetes ortamı sağlayarak bu zorlukları azaltır. Bu hizmetler, Azure'da kapsayıcılı uygulamaları dağıtmayı ve yönetmeyi de basitleştirir. AKS sayesinde, kendi özel Kubernetes kümenizi çalıştırmanın karmaşıklığı ve işlem ek yükü olmadan açık kaynak Kubernetes’in avantajlarını elde edebilirsiniz.

Not

Kubernetes bazen K8s olarak kısaltılır. Buradaki 8 sayısı, K[ubernete]s sözcüğünde K ile s harfleri arasındaki sekiz karakteri temsil eder.