Blog » Nedir, Nasıl Yapılır? » Kubernetes Nedir?
Nedir, Nasıl Yapılır? Teknoloji

Kubernetes Nedir?

Hosting Fiyatları

 “GO” dilinde, Google tarafından geliştirilmiş olan Kubernetes, Cloud Native Computing Foundation tarafından desteklenen bir konteyner kümele aracıdır. Konteyner kümelemede (Container Cluster), mevcut olarak konteyner haline getirilen tüm uygulamalar, otomatik olarak harekete geçirilir (deploy edilir), sayıların arttırılıp, azaltılması işlemler aracılığıyla da yönetilmesi sağlanır. 

Tüm bu işlemleri sağlayan konteyner kümele sistemi de Kubernetes olarak ifade edilir ve böylece “Kubernetes Nedir, Ne İşe Yarar?” sorularına yanıt verilmiş olur. Yunanca kökenli bir kelime olan Kubernetes, dümenci ya da pilot anlamında kullanılır. Birçok kaynakta karşımıza çıkan “K8S” ifadesi ise Kubernetes kelimesinde yer alan “k” ve “s” harflerinin arasında 8 tane harf olmasından dolayı bu adı almıştır. 

Kubernetes projesinin ilk paylaşıma açılma tarihi 2014 yılıdır. Şu an kullanılan son versiyonu ise 1.20 olarak tanımlanmaktadır. Teknolojik dönüşüm ile birlikte “Bulut Teknolojileri” de daha fazla alanda kullanıma açılmıştır. Bulut teknolojileri ile birlikte anılan konteyner kavramı, her geçen gün daha önemli hale geldi, sanal makine devrimi, konteyner (Container) devrimine evrilmeye başladı. 

Kubernetes teknolojisi ile tüm uygulamalar, mikroservis mimarisi üzerinden kolay bir şekilde yönetilme imkanı yaratmaktadır. Oluşan ya da oluşabilecek tüm sorunlara daha kolay çözüm yolu sunan Kubernetes projeleri, taşınabilir özellikleriyle, uygulamalar üzerine kolayca entegre edilebilmektedir. Kubernetesler, sürüm geçiş işlemlerinin de daha hızlı bir şekilde yapılmasına destek vermektedir.

Kubernetes konusunda yapılan sorgu aramalarında en çok “Docker Kubernetes Nedir?” sorusu karşımıza çıkıyor. Bunun nedeni yukarıda belirtilen tüm işlemlerin, Docker uygulaması ile yürütülmesidir. O yüzden Kubernetes ve Docker birlikte anılmaktadır. 

Dünya üzerinde yaygın olarak kullanılan konteyner teknolojilerinden biri de Docker olmaktadır. 

Docker uygulaması,  2008 yılında Linux Kernel üzerine eklenmiş olan Linux Containers (LXC) teknolojisi olarak başlamıştır. Teknolojik dönüşümde yeri epey eskidir. Sanallaştırma teknolojisi olan LXC (Linux Containers) altyapısının üzerine inşa edilen Docker, LXC üzerinden gerçekleştirilen manuel işlemleri belirli bir paket program içerisinde standart hale dönüştürmüştür. Google, Kubernetes teknolojisini yıllardır AR-GE çalışmalarında ve uygulamalarında kullanmaktadır.

Kubernetes Kavramları Nelerdir?

Kubernetes çalışma şeklini anlatmadan önce, çalışma sistematiğinde yer alan bazı kavramların anlamını bilmek gerekiyor. Kubernetes projelerinde de sıklıkla karşılaşılan kavramlardan bazılarını ise aşağıdaki şekilde sıralayabiliriz;

  • API Server: Master sunucuya gelen REST’lerin “Representational State Transfer” (web uygulamaları için, transfer işlemlerinde kullanılan mimari) yönetilmesinden sorumlu olan server’dır. Cluster’ların beyni olarak ifade edilir. 
  • Controller Manager: Denetleyici özelliğindedir. Kümelerin durumunu API server’ın izleme özelliğini kullanarak izleme gerçekleştirir, bildiri iletildiğinde gerekli değişiklikleri uygular.
  • Scheduler: Belirlenen pod’un hangi node üzerinde çalıştırılacağına karar verme mekanizmasıdır. Kubelet’i harekete geçirerek, ilgili olan pod ve içerisinde yer alan konteyner oluşturulmuş olur. Yeni bir pod oluşturma talebinde API server’ını izler. 
  • Etcd: Coreos kısmında yaratılan open source distributed, izlenebilir nitelikte Key Value Store (Anahtar Değer Mağazaları) özelliğindedir. Konteyner teknolojisinde önemli bir yere sahiptir.
  • Node: Cluster’da yer alan gerçek makinelere verilen isimdir. Soyutlaştırma ifadesi olarak kullanılır. 
  • Pod: Konteyner’ların içerisinde işlem yaptığı bileşenlerdir. Pod, kendine has IP’ye sahip olan, en küçük atabilir özellikteki birimdir. Pod’lar içerisinde bir ya da daha fazla konteyner bulunabilir.
  • Namespace: Kubernetesler, gerçek Cluster üzerinde sanal Cluster’larda barındırma özelliğindedir. Kullanılan sanal Cluster’ların her birine Kubernetes Namespaces adı verilir.
  • Cluster: Kubernetes’lerin en büyük bileşenidir. K8 tarafından yönetilir. Node’lar birliği olarak da ifade edilir. 

Kubernetes Nasıl Kullanılır?

Günümüz teknoloji dünyasında, kapsayıcı mikro hizmetler ve yapılandırmalar ile oluşturulan uygulamaların kullanım oranları gittikçe yükseliyor. Kubernetes, tüm kapsayıcıları ölçeklere göre dağıtma ve yönetme işlemlerine yönelik olarak kullanılan, açık kaynak yazılımı ifade ediyor. Kubernetes aracılığıyla çok daha hızlı ve kapsayıcı uygulamalar oluşturmak ve ölçeklendirmek mümkündür. 

Kubernetes çalışma şekli, aşağıdaki işlem adımları ile belirtilmiştir;

  • Kubectl (Kubernetes Client) uygulama isteği API sever’ına iletilir
  • API server gelen isteği kontrol ederek, etcd (Cluster verisinin saklanmış olduğu bileşen) üzerine yazar
  • etcd yazmış olduğu bilgilendirmeyi API serverına iletir
  • API server, yeni oluşturulacak pod isteğini Scheduler zamanlayıcısına iletir
  • Scheduler zamanlayıcısı, pod’un hangi server üzerinde çalışacağına karar vererek, bilgisini API server ile paylaşır
  • API sever bilgiyi etcd üzerine yazar
  • etcd yazmış olduğuna dair bilgiyi API server’a iletir
  • API server ilişkilendirilen node’da bulunan kubeleti (Node üzerinde bulunan ana Kubernetes ajanı) bilgilendirir
  • Kubelet, Docker servisi ile ilgili olan soketi API aracılığıyla konuşur ve konteyner yaratılır
  • Pod’un yaratılmış olduğunu ve son durumunu, Kubelet API server’a iletir
  • API server’ı pod’un yenilenmiş durumunu etcd’ye yazar

Kubernetes çalışma mantığı ve şekli yukarıda ifade edilen akış içerisinde gerçekleştirilir.  Kubernetes projeleri, konteyner teknolojisini ve bulut teknolojileri içerisinde yer alan lider servis sağlayıcılarını servis olarak sunar.

Kubernetes Ingress Nedir?

Kubernetes Ingress Controller, resmi bir Kubernetes denetleyicisi olmaktadır. İngress Controllerin görevi, Kubernetes’te çalıştırılan uygulamanın, kullanıcı tarafından erişime izin verilmesi ile dıştan gelen trafiği Kubernetes’e bağlanmasıdır. Bazı bileşenlerin, nesne ve hizmetlerin hemen başlaması Ingress Controller’de görülmez. Bir küme başlatıldığı zaman Ingress Controller otomatik başlatma yapmaz. 

Doğru bir Ingress Controller seçimi, Kubernetes kümesine gelen trafiğin ve yükün göz önünde bulundurularak karar verilmesini gerektirir. Ingress Controller, topluluk tarafından geliştirilmektedir. Nginx dayanmakta olup, ekstra özelliklerin uygulanmasında kullanılan Lua eklentisi ile desteklenmektedir. 

NGINX, Rus bir yazılım mühendisi olan Igor Sysoev tarafından, mail.ru için yapılmış olan mail sunucu olarak oluşturulmuştur. Daha sonra geliştirilerek, tüm platformlarda uygulanabilir hale dönüştürülmüştür. NGINX’in popüler oluşu ve denetleyici görevinde minimum değişiklik yaratması, K8 ile çalışabilen standart mühendisler için uygun bir seçenek olarak gösterilmektedir.

Kubernetes Pod Nedir?

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 (bilgisayara bağlanmış olan veri ya da cihaz) 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.

Kubernetes Cluster Nedir?

Cluster, belirli bir konfigürasyon ile yapılandırılmış olan, aynı amaç doğrultusunda beraber ya da yedekli şekilde çalışan sunucu kümelerine verilen isimdir. 

Cluster, yapıda yer alan kümeleri oluşturmak için, “Node” olarak bilinen iki ya da daha çok sunucuya ihtiyaç duymaktadır. Bu çalışma prensibine sahip Cluster yapıdaki bir küme, tek sunucu üzerinden elde edilen kullanılabilirlik oranı, güvenilirlik düzeyi ve ölçeklendirilme seviyesine göre daha fazla oranda katkı sunmaktadır.

Kullanıcı tarafından incelendiğinde ise çalışan sistemin Cluster yapıya sahip olup olmadığının anlaşılması mümkün değildir. İyi bir planlama aşaması ile Cluster mimarisinin uygulanabileceği birçok servis bulunmaktadır. 

Günümüzde sıklıkla kullanılan Cluster alanları ise aşağıdaki gibidir;

  • “MS Exchange Server, Dovecot, Exim” gibi mail servislerinde
  • “Apache, Nginx, Internet Information Services” gibi uygulama servislerinde
  • “MS SQL, MySQL, MariaDB, Postgresql” gibi veri tabanı servislerinde
  • “File Server” gibi dosya paylaşım servislerinde

Yukarıda yer alan tüm servislerde Cluster mimarisi güvenle kullanılmaktadır. Kubernetes Cluster’lar çalışma prensipleri olarak “aktif / aktif” ya da “aktif / pasif” kullanım seçeneklerini içerisinde barındırırlar. Cluster yapılardaki aktif sunucular, gelen istekleri karşılayan görevdeki sunucu türleridir. Cluster yapılardaki pasif sunucular ise aktif sunucular üzerinde oluşabilecek donanımsal ya da yazılımsal sorunlarla karşılaştıklarında, aktif sunucuların yerine kullanılmak üzere bekleyen sunucu türleri arasında bulunmaktadır.

Azure Kubernetes Nedir?

Microsoft Azure Kubernetes Service (AKS)  kapsamlı uygulamaların kolay bir şekilde oluşturulup, yönetilmesini sağlamaktadır. Azure Kubernetes, sunucusuz bir zeminde, tümleştirme işlemlerini sürdürerek, sürekli teslim deneyimi ve üst sınıf güvenlik ile yönetme imkanı sunmaktadır.

Azure, uygulama geliştirme süreçlerini hızlandırma görevi ile en karmaşık Kubernetes uygulamalarında bile kolay tanımlama yapmayı sağlar. Mevcut ya da olabilecek hataların ayıklanması, yükseltilmesi ve uygulamalara otomatik kapsayıcı eklenmesi Azure Kubernetes ile yapılmaktadır.

Ürünlerin sektöre çıkma sürelerini kısaltan, modern bir uygulama geliştirici özellik taşımaktadır. Azure portalı üzerinden erişim sağlanan AKS kümeleri için de, otomatik olarak yapılandırılabilen Kubernetes kaynak görünümü elde edilir. Azure Kubernetes, onarım, takip ve ölçeklendirme özelliklerini de içerisinde barındırır, at yapı bakımını en az seviyeye indirir. 

Domain Sorgulama
guest
0 Yorum
Inline Feedbacks
View all comments