Kubernetes Nedir ?

Kubernetes, görev açısından kritik bir görevi gerçekleştirmek için çeşitli dikey endüstrilerdeki büyük ölçekli işletmelerde kullanılan açık kaynaklı bir container yönetim sistemidir. Yeteneklerinden bazıları şunları içerir:

  • Kapsayıcı kümelerini yönetme
  • Uygulamaları dağıtmak için araçlar sağlama
  • Uygulamaları gerektiği gibi ve gerektiğinde ölçeklendirme
  • Mevcut kapsayıcıya alınmış uygulamalardaki değişiklikleri yönetme
  • Konteynırınızın altındaki temel donanım kullanımını optimize etmeye yardımcı olur
  • Uygulama bileşeninin sistemde gerektiğinde yeniden başlatılmasını ve hareket etmesini sağlama

Kubernetes, temel çerçevenin çok daha fazlasını sunarak, kullanıcıların uygulama çerçevesi türlerini, dilleri, izleme ve günlük kaydı araçlarını ve tercih ettikleri diğer araçları seçmelerine olanak tanır.

Kubernetes Mimarisi: Nasıl Çalışır?

Kubernetes’in Master-Slave Mimarisi ve Componentleri :

Kubernetes Master:
Sistem genelinde iş yüklerini ve iletişimi yöneten birincil kontrol birimidir. Bileşenlerinin her biri, tek bir ana node veya birden çok ana node’da çalışabilen farklı bir işleme sahiptir.

Componentleri :

  • Etcd Storage : CoreOS ekibi tarafından geliştirilen açık kaynaklı bir key-value veri deposudur ve kümedeki tüm node’lar tarafından erişilebilir. Kubernetes, herhangi bir zamanda kümenin genel durumunu temsil etmek üzere kümenin yapılandırma verilerini depolamak için “Etcd” kullanır.
  • API-Server : API sunucusu, değişiklikler için REST isteklerini alan ve kontrol kümesine frontend görevi gören merkezi yönetim varlığıdır. Dahası, bu, Etcd kümesiyle iletişim kuran ve verilerin Etcd’de depolandığından emin olan tek şeydir.
  • Scheduler : Bölmeleri kaynak kullanımına göre çeşitli node’larda planlamaya yardımcı olur ve hangi hizmetin nereye dağıtılacağına karar verir.
  • Controller Manager : Kümenin paylaşılan durumunu düzenlemek ve rutin bir görevi gerçekleştirmek için arka planda bir dizi farklı denetleyici işlemi çalıştırır. Hizmette herhangi bir değişiklik olduğunda, controller değişikliği tespit eder ve yeni istenen duruma doğru çalışmaya başlar.

Worker Node :
Bu, Kubernetes veya Minion node olarak da bilinir ve Docker gibi kapsayıcılar arasındaki ağı yönetme ve ana node arasındaki iletişimi, kaynakları zamanlamaya göre kapsayıcılara atayarak içerir.

  • Kubelet: Kubelet, node tüm kapsayıcıların çalışmasını ve sağlıklı durumda olmasını sağlar. Kubelet, istenen durumda değilse bir kapsülün durumunu izler. Bir node başarısız olursa, bir çoğaltma denetleyicisi bu değişikliği gözlemler ve başka bir sağlıklı bölmedeki bölmeleri başlatır.
  • Container : Bölmenin içine yerleştirilen en düşük mikro hizmet düzeyidir ve dış süreci görüntülemek için harici bir IP adresine ihtiyaç duyar.
  • Kube Proxy : Ağ proxy’si ve yük dengeleyici görevi görür. Ek olarak, isteği bir kümedeki yalıtılmış ağlar üzerinden doğru bölmelere iletir.
  • cAdvisor : Her node kaynak kullanımı ve performans ölçütleri hakkında verileri izlemek ve toplamaktan sorumlu bir asistan olarak hareket eder.

Kubernetes’in avantajları

Taşınabilir ve Açık Kaynak

Kubernetes, container’ları bir veya daha fazla genel bulut ortamında, sanal makinede veya yalın metalde çalıştırabilir, bu da herhangi bir altyapıya dağıtılabileceği anlamına gelir. Dahası, birçok platformda uyumludur ve çoklu bulut stratejisini oldukça esnek ve kullanılabilir kılar.

İş Yükü Ölçeklenebilirliği

  • Yatay Altyapı Ölçeklendirme : İşlemler, yatay ölçeklendirmeyi uygulamak için bireysel sunucu düzeyinde yapılır. Yeni sunucular kolayca eklenebilir veya kaldırılabilir.
  • Otomatik Ölçeklendirme : CPU kaynaklarının veya diğer uygulama ölçümlerinin kullanımına bağlı olarak, çalışan container sayısını değiştirebilirsiniz.
  • Manuel Ölçeklendirme : Çalışan container sayısını bir komut veya arayüz aracılığıyla manuel olarak ölçekleyebilirsiniz.
  • Çoğaltma Denetleyicisi: Çoğaltma denetleyicisi, kümenin çalışan bir durumda belirtilen sayıda eşdeğer bölmeye sahip olmasını sağlar. Çok fazla bölme varsa, çoğaltma denetleyicisi fazladan bölmeleri kaldırabilir veya bunun tersi de geçerlidir.

Yüksek kullanılabilirlik

Kubernetes, hem uygulamaların hem de altyapının kullanılabilirliğini idare edebilir.

  • State Denetimleri : Kubernetes, modların ve kapsayıcıların state’ini sürekli kontrol ederek uygulamanın başarısız olmamasını sağlar. Kubernetes, bir hata nedeniyle bir kapsülün çökmesi durumunda kendi kendini iyileştirme ve otomatik değiştirme olanağı sunar.
  • Trafik Yönlendirme ve Yük Dengeleme : Kubernetes yük dengeleyici, yükü birden fazla yüke dağıtarak trafik veya toplu işlem sırasında kaynakları hızlı bir şekilde dengelemenize olanak tanır.

Dağıtım için Tasarlandı:

Container, yazılım oluşturma, test etme ve yayınlama sürecini hızlandırma becerisine sahiptir ve kullanışlı özellik olarak şunları içerir:

  • Otomatik Sunum ve Geri Dönüşler : Kubernetes, uygulamanız için yeni sürümü ve güncellemeleri kesinti olmadan yönetirken, aynı zamanda kullanıma sunma sırasında sağlığı da izler. İşlem sırasında herhangi bir arıza meydana gelirse, otomatik olarak geri alınır.
  • Canary Deployment: Kubernetes, yeni deployment ve önceki sürümün üretimini paralel olarak test eder, yani yeni deployment’ı büyütmeden ve eşzamanlı olarak önceki deployment’ı ölçeklendirmeden önce yapar.
  • Programlama Dili ve Framework Desteği : Kubernetes, Java, .NET, Php ,Javascript vb. Gibi programlama dillerinin ve framework’lerinin çoğunu destekler ve ayrıca geliştirme topluluğundan büyük destek almıştır. Bir uygulamanın bir container’da çalıştırma yeteneği varsa, Kubernetes’te de çalışabilir.

Kubernetes Güvenliği

Kubernetes, DNS yönetimi, kaynak izleme, günlük kaydı, depolama düzenlemesi sağlar ve ayrıca güvenliği birincil şeylerden biri olarak ele alır. Örneğin, şifreler veya ssh anahtarları gibi bilgilerin Kubernetes gizli dizilerinde güvenli bir şekilde saklanmasını sağlar.

Kubernetes ve State Containers

Kubernetes StatefulSets, state olan container’la başa çıkmak için birimler, kararlı ağ kimlikleri ve 0'dan N’e kadar sıra dizinleri gibi kaynaklar sağlar. Hacim, state bilgisi olan uygulamayı çalıştırmamızı sağlayan önemli bir özelliktir. Desteklenen iki ana birim türü şunlardır:

  • Ephermal Storage Volume:
    Ephermal veri depolaması Docker’dan farklıdır. Kubernetes’te, hacim, bölme içinde çalışan tüm container’ı hesaba katılır ve veriler, container’da depolanır. Ancak bölmeler öldürülürse, ses otomatik olarak kaldırılır.
  • Kalıcı Depolama:
    Burada veriler ömür boyu kalır. Bölme öldüğünde veya başka bir node’a taşındığında, bu veriler kullanıcı tarafından silinene kadar kalır.

Kubernetes’in Gerçek Dünyadaki Kullanım Örnekleri

  • Pokémon Go — Çevrimiçi çok oyunculu oyun, Kubernetes’in gücünü gösteren popüler oyunlardan biridir. Piyasaya sürülmeden önce, bu oyunun makul ölçüde en çok konuşulan oyun olması bekleniyordu. Ancak piyasaya sürüldükten sonra beklenenden 50 kat fazla trafik aldı. Kubernetes’i kullanarak Pokémon Go, beklenmedik talebe ayak uydurmak için yüksek ölçeklendirmeyi başardı.
  • Pinterest — Pinterest, 1000 mikro hizmete dönüşen ve çeşitli araç ve platformlara sahip çok popüler bir sosyal ağ platformudur. Şirket, geliştiricileri altyapı konusunda endişelendirmeden en hızlı üretim yolunu kullanmak istedi. Ekip, karmaşık altyapının genel dağıtımını ve yönetimini basitleştirmek için Kubernetes gibi bir container düzenleme platformu aradı. Kubernetes deployment yapıldıktan sonra şirket, derleme sürelerini kısalttı ve verimlilik zirveye ulaştı.

Sonuç

Kısa bir süre içinde, Kubernetes büyüyüp ekonomik bir güç merkezine dönüştü. Çeşitli faydalar sunduğu için, her büyüklükteki birçok şirket, sürekli artan bir ihtiyacı karşılamak için ürün ve hizmetler geliştirmeye çalışmaktadır. Kubernetes, hem genel hem de özel bulutlarda çalışma yeteneğine sahiptir ve onu hibrit bulutlarla çalışan işletmeler için favori araçlardan biri haline getirmiştir. Bu devam ederse, daha fazla şirketin Kubernetes’e ve container yönetim sistemine yatırım yaptığını görebiliriz.

  Alıntı Yap

KARABAY A, 2021 . Kubernetes Nedir ?,

https://www.karabayyazilim.com/blog/kubernetes-nedir-2021-03-24-191423

(Erişim Tarihi : 24 Mart 2021).


  Bu yazıyı paylaş

Yorumlar (0)

Yorum Yap

Abone Ol
Blog yazılarımdan ilk siz haberdar olmak için email bültenine kaydolun