Scroll Top


KUBERNETES

Kubernetes GO yazılım dili ile geliştirilmiş Google tarafında yayınlamıştır. Amacı hali hazırdaki konteyner uygulamalarını manuel yerine otomatik dağıtımının yapılması replikalarının oluşturulması veya kapatılması gibi işlemleri yönetilmesini kolaylaştıran bir araçtır.

Faydaları;

  • Tüm sistemi tek bir bütün olarak görebilmek ve yönetebilmek.
  • Alt yapıdaki donanını daha efektif kullanabilmek.
  • Konteynerların sağlık durumlarını sürekli kontrol edebilmesi ve bilgi vermesi.
  • Bir problem durumda arızaya düşen konteynerın yerine yenisini kendisi oluşturması ve çalıştırması.
  • Auto-scale ile belirlenen özelliklerde yük dağıtımı yapabilmesi.
  • Yeni versiyonlarına kolay geçişler.
  • Hangi konteynerda ne var hangi uygulama nerede çalışıyor gösterebilmesi.
  • Konteynerların izole networke sahip olması.

Gibi başlıca faydaları bulunmaktadır.

Mimarisi;

  • Master Node
    • Cluster içindeki sunucuları yöneten beyin kısmıdır.
  • ApiServer
    • Cluster içindeki ve dışındaki istekleri karşılar ve etcd veritabanına bir tek bu ajan ile bağlantı kurulur.
  • Scheduler
    • Hangi pod üzerinde ne çalışıyor ve kullanılabilir ne kadar kaynak var ise bu kısımda yönetilir.
  • Etcd
    • Cluster durumu, network bilgileri burada depolanır.
  • Worker Node
    • Podların barındırıldığı alandır. Her clusterda en az 1 adet bulunur.
  • Kubelet
    • Apiserver’dan gelen istekler doğrultusunda ilgili docker ile haberleşerek pod çalıştırır.
  • Pod
    • Konteynerların çalışma alanıdır. Podlar ölür ve yeniden doğar. Kubernetes’in en küçük bileşeni “Pod” olarak adlandırılmaktadır. Kubernetes Cluster’larda çalıştırılan process’leri temsil ettiği ifade edilmektedir. Pod’lar, Kubernetesleri deploy edebilir (harekete geçirebilir) özellikte birimlerdir.
    • Kubernetes’te network ve storage gibi kavramların soyutlaması pod’lar ile mümkündür. Aynı pod içerisinde yer alan konteyner’ler ve cihazlar mevcut bağlantıları kullanırlar. Bir pod’da yer alan konteyner’ın açmış olduğu sokete, aynı pod üzerindeki diğer konteyner lokal hostları üzerinden ulaşabilirler.
    • Pod içerisinde bulunan konteyner’lar için bazı soyutlamalar da söz konusu olmaktadır. Esnek bir çalışma akışı sağlayan bu özellik ile farklı konteyner’ları bir araya getirebilir, en uygun bileşeni oluşturabilir, bileşenleri çoğaltma işlemini gerçekleştirebilirsiniz. Pod’ların temel görevlerinden biri de soyutlamalardır. Kubernetes’de en sık tercih edilen konteyner çalışma zamanlayıcısı Docker’dır. Kubernetes, konteyner’ları değil, pod’ları yönetme görevindedir.
  • Controller Manager
    • Nodeların çalışırlılığını kontrol eder.
    • Podların olması gereken replikalarını kontrol eder.