Kubernetes nedir? Ne için Kullanılır?

Kubernetes nedir? Ne için Kullanılır?

Kubernetes, bir bulut ortamında kapsayıcı uygulama dağıtımı için yeni standarttır. Container düzenleme sistemi, ölçekte çalışan işletmeler için uygun bir çözümdür ve özel sunucular, genel bulut ve karma ortamlarda kullanılabilir.

Container düzenlemesinde yeni standart olarak, tüm büyük bulut platformları (AWS, Microsoft Azure ve IBM Cloud gibi) platform için yönetilen hizmetleri sunar. Ancak birçok işletme için, bu hizmetler, uygulama dağıtımını otomatikleştirmek için  karmaşık sistemler için tasarlanmıştır.

Kubernetes ilk olarak Google tarafından geliştirilen bir hizmettir. Daha sonrasında Open Source olarak herkesin kullanımına açılmıştır. Kubernetes kelimesi Yunanca kökenlidir ve dümenci veya pilot anlamına gelir. Kubernetes artık containerlar ve dağıtılmış uygulama için pazar lideri ve endüstri standartlarını düzenleme aracıdır. 

Kubernetes, uygulamaları bir mikro hizmet mimarisinde dağıtmayı ve çalıştırmayı kolaylaştırır. Bunu, bir grup ana bilgisayarın üstünde bir soyutlama katmanı oluşturarak yapar, böylece geliştirme ekipleri uygulamalarını dağıtabilir ve Kubernetes’in şunları yönetmesine izin verebilir:

  • Uygulama veya ekibe göre kaynak tüketimini kontrol etme
  • Uygulama yükünü bir ana bilgisayar altyapısına eşit olarak yayma
  • Bir uygulamanın farklı örneklerinde dengeleme isteklerini otomatik olarak yükle
  • Uygulamaların çok fazla kaynak tüketmesini ve uygulamaları yeniden başlatmasını otomatik olarak durdurmak için kaynak tüketimini ve kaynak sınırlarını izleme
  • Bir ana bilgisayarda kaynak sıkıntısı varsa veya ana makine ölürse uygulama örneğini bir ana bilgisayardan diğerine taşıma
  • Kümeye yeni bir ana bilgisayar eklendiğinde kullanıma sunulan ek kaynakları otomatik olarak kullanma

Giderek daha fazla kuruluş kapsayıcılardan faydalanan mikro hizmet ve bulut yerel mimarilerine geçtikçe, güçlü ve kanıtlanmış platformlar arıyorlar. Uygulayıcılar dört ana nedenden dolayı Kubernetes’i tercih ediyor:

1. Kubernetes daha hızlı hareket etmenize yardımcı olur. Gerçekten de Kubernetes, geliştirme ekipleri için bir donanım katmanı soyutlaması oluşturan self servis bir Hizmet olarak Platform (PaaS) sunmanıza izin verir. Geliştirme ekipleriniz ihtiyaç duydukları kaynakları hızlı ve verimli bir şekilde isteyebilir. Ek yükü kaldıracak daha fazla kaynağa ihtiyaç duyarlarsa, kaynakların hepsi tüm ekipleriniz de paylaşılan bir altyapıdan geldiğinden, bunları en kısa sürede elde edebilirler.

2. Kubernetes düşük maliyetlidir. Kubernetes ve kapsayıcılar, hipervizörlerden ve sanal makinelere göre çok daha iyi kaynak kullanımına izin verir; çalışmaları için daha az CPU ve bellek kaynağı gerekir.

3. Kubernetes buluttan bağımsızdır. Kubernetes, Amazon Web Services  (AWS) , Microsoft Azure ve Google Cloud Platform’da (GCP ) çalışır ve bunu şirket içinde de çalıştırabilirsiniz. İş yüklerini uygulamalarınızı yeniden tasarlamak zorunda kalmadan veya altyapınızı tamamen yeniden düşünmek zorunda kalmadan taşıyabilirsiniz.

4. Bulut sağlayıcıları Kubernetes’i sizin için yönetecektir. Daha önce belirtildiği gibi, Kubernetes şu anda Container düzenleme araçları için açık standarttır. Öyleyse, büyük bulut sağlayıcılarının çok sayıda hizmet olarak Kubernetes sunması şaşırtıcı değil. Amazon EKS , Google Cloud Kubernetes Motoru , Azure Kubernetes Hizmeti (AKS) , Red Hat Openshift ve IBM Cloud Kubernetes Hizmeti , eksiksiz bir Kubernetes platform yönetimi sağlar.

.

Kubernetes nasıl çalışır?

Bir Container orkestratörü esasen Containerları uygulamalardan oluşan bir filoyu işletmekten sorumlu bir yöneticidir. Yeniden başlatılması veya daha fazla kaynak edinmesi gerekiyorsa, orkestratör bununla ilgilenir.

Bu, çoğu Container orkestratörünün nasıl çalıştığının oldukça geniş bir özetidir. Bunu gerçekleştiren Kubernetes’in tüm belirli bileşenlerine daha ayrıntılı bir göz atalım.

Kubernetes terminolojisi ve mimarisi

Kubernetes, uygulamanızın nasıl düzenlendiğini açıklamak için birçok açıklaması vardır. En küçük katmandan başlayıp yukarı doğru ilerleyeceğiz.

Pods

Kubernetes bölmesi, bir grup kapsayıcıdır ve Kubernetes’in yönettiği en küçük birimdir. Bölmelerin, bölmedeki her kapsayıcıya uygulanan tek bir IP adresi vardır. Bölmedeki kaplar, bellek ve depolama gibi aynı kaynakları paylaşır. 

Bu, bir kapsüldeki tek tek Linux kapsayıcılarına toplu olarak tek bir uygulama gibi davranılmasını sağlar; kapsayıcı işlemlerin tümü daha geleneksel iş yüklerinde aynı ana bilgisayarda birlikte çalışıyormuş gibi. Uygulama veya hizmetin çalışması gereken tek bir işlem olduğunda, yalnızca tek bir kapsayıcıya sahip bir kapsüle sahip olmak oldukça yaygındır. 

Ancak işler daha karmaşık hale geldiğinde ve doğru işlem için aynı paylaşılan veri hacimlerini kullanarak birden çok işlemin birlikte çalışması gerektiğinde Örneğin, GIF’ler oluşturan bir görüntü işleme hizmeti üzerinde çalışıyorsanız, bir bölmede görüntüleri yeniden boyutlandırmak için birlikte çalışan birkaç Pod olabilir. Birincil Pod, istekleri yerine getiren engellemeyen mikro hizmet uygulamasını çalıştırıyor olabilir ve daha sonra toplu arka plan işlemlerini çalıştıran veya genel uygulama performansını yönetmenin bir parçası olarak depolama hacmindeki veri yapılarını temizleyen bir veya daha fazla yardımcı kapsayıcı olabilir.

Deployments

Kubernetes deployments, Kubernetes düğümlerinizde kapsüllerin nasıl çoğaltılmasını istediğinizin ayrıntılarını ayarlamanıza izin vererek uygulamanızı çalıştırmak istediğiniz ölçeği tanımlar. Deployments, çalıştırılmak istenen özdeş kapsül çoğaltmalarının sayısını ve Podları güncelleştirilirken kullanılan tercih edilen güncelleme stratejisini tanımlar. Kubernetes bölme sağlığını izler ve uygulama deployments larınızı istediğiniz duruma getirmek için Podsları kaldırır veya ekler.

Services

Hizmet, kapsüller üzerinde bir soyutlamadır ve aslında tüketicilerin etkileşime girdiği tek uygulama arabirimidir. Kapsüller değiştirildikçe dahili adları ve IP’leri değişebilir. Bir hizmet, temel adları ve numaraları güvenilir olmayan kapsüller ile eşlenmiş tek bir makine adı veya IP adresi gösterir. Bir hizmet, dış ağda her şeyin değişmemiş görünmesini sağlar.

Nodes

Kubernetes node bölmeleri yönetir ve çalıştırır; verilen işi yapan makinedir (sanallaştırılmış veya fiziksel). Pods birlikte çalışan ayrı kapları toplarsa, bir düğüm birlikte çalışan tüm podsları toplar.

Master server

Bu, yöneticilerin ve kullanıcıların çeşitli nodesları yönetmesi için ana giriş noktasıdır. İşlemler, HTTP aramaları veya makineye bağlanma ve komut satırı komut dosyalarını çalıştırma yoluyla yapılır.

Kubernetes ne için kullanılır?

Kubernetes, buluta dağıtılan container uygulamalarınızı takip eder. Containerlarları yeniden başlatır, kullanılmadıkları zaman containerları kapatır ve gerektiğinde gücü otomatik olarak bellek, depolama ve CPU gibi kaynaklarına sağlar.

Kubernetes Docker ile nasıl çalışır?

Aslında, Kubernetes birkaç temel container motorunu destekliyor ve Docker bunlardan sadece biri. İki teknoloji birlikte harika çalışıyor, çünkü Docker containerları paketlenmiş uygulamaları dağıtmanın etkili bir yoludur ve Kubernetes bu uygulamaları koordine etmek ve programlamak için tasarlanmıştır.

Özet

Kubernetes açık kaynak olduğundan, şirket içi, hibrit veya genel bulut altyapılarından yararlanma özgürlüğüne izin verir ve iş yüklerini sizin için önemli olan yere zahmetsizce taşımanızı sağlar. 

Meslek hayatım boyunca edindiğim bilgileri elimden geldiğince sizlerle paylaşacağım, bunun yanında güncel gelişmeler, Online eğitimler ve Pratik bilgileri vermeye devam edeceğim.
Cem BARUT

Bir Cevap Yazın