Kubernetes Nedir?

Nedir

Bugün sizlere Kubernetes’in ne olduğunu, kullanım alanlarını, işleyişini, teknolojilerini ve çalışma prensibini detaylı bir şekilde anlatacağız.

Kubernetes nedir

  • İlk olarak Kubernetes nedir, onu öğrenelim.

Kubernetes, konteynerleştirilen uygulamaların çeşitli yönetimini otomatikleştiren açık kaynaklı bir platformdur. Google tarafından geliştirilen Kubernetes, tam olarak 10 yıl önce 2014’te açık kaynaklı bir şekilde piyasaya sürüldü. Bu sistem, mikro hizmet sağlayan mimarilerin dağıtık sistemlerinin yönetimi için fazlasıyla ideal bir biçimdir. Ve uygulamaların taşınabilir, dayanıklı ve ölçeklenebilir olmasında büyük rol oynar.

  • Kubernetes’in kullanım alanları

Uygulamaları konteyner halinde yönetmek, ölçeklendirmek birden fazla yere yaymak ve sürdürebilmek için kullanılır. Yukarıda da bahsettiğimiz gibi mikro hizmet mimarisi kullanan karmaşık ve büyük uygulamalarda entegrasyon ve dağıtım (CI/CD) süreçlerinde kullanılır. Ve sistem, farklı farklı bulut ortamlarında (örneğin AWS, Google Cloud, Azure ve Huawei Cloud) veya firma içi veri merkezlerinde çalışabilir. İş süreci içerisinde hibrit bulut çözümlerle ideal bir platformdur.

  • İşleyiş mantığı

Konteynerlar, tıpkı bir topluluk gibi gruplar halinde yönetilebilir. Ve gruplara “pod” adı verilir. Ve her pod, bir veya birden fazla konteyner içerebilir. (Biraz daha teknik konulara gireceğiz) Kubernetes’in temel işleyiş bileşenlerinden birisi olan “Kubelet”, node’lar üzerinde çalışır. Pod’ları yönetir. “Kubernetes API Server” bütün bileşenlerin iletişim halinde olduğu merkez birimdir. “Etcd” ise, durum bilgisini saklayan dağıtık bir veri deposudur. “Scheduler” ekibe yeni katılan pod’ların hangi node üzerinde çalışacağını seçer. “Controller Manager” konteyner kümesini istenilen duruma getirebilmek için çeşitli kontrol döngülerini çalıştırmakla yükümlüdür.

  • Kubernetes teknolojileri

Sistem, tıpkı Docker gibi konteyner motorları ile entegre bir şekilde çalışmaktadır. “Helm”, Kubernetes üzerinde uygulamaların paketlerini yönetmek için kullanılır. (Kısaca paket yöneticisi.) “Kubectl” en içli dışlı olacağınız kod satırıdır. Çünkü, kümelerin üzerinde komut çalıştırmak için kullanılır. “Ingress Controller” ve “Load Balancer” ise uygulamaların trafiğini yönetir. “Prometheus ve “Grafana” gibi araçlar, kümelerin performansını ve sağlığını izler.

  • Kubernetes’in çalışma prensibi

Durumsuz uygulamalardan tutun, durumsal veri tabanlarına kadar geniş bir alanda kullanılan uygulama türlerini destekler. Her bir küme, node’lardan oluşur. (Bir dize) Ve her bir node konteynerların çalışma ortamıdır. Kubernetes, node’lar üzerinde uygulama konteynerlerini otomatik bir şekilde dağıtır. Ölçeklendirebilir hatta gerekirse yeniden başlatabilir. Bu yeniden başlatma süreci, yukarıda da bahsettiğimiz gibi “Controller” ve Scheduler” adında olan iki bileşen tarafından yönetilir. Ekstra olarak Kubernetes, ağ politikalarıyla pod’lar arasındaki trafiği yönetebilir. “Service” ile dış dünyadan erişim sağlayabilir. Tekrardan belirtelim, otomatik iyileştirme mekanizmaları kullanan sistem, başarısız olan konteynerleri yeniden başlatabilir. Bu işlem sayesinde node’lar arasındaki yükü dengeler.

Bilmeyenler için: AKS (Azure Kubernetes Service) Erişim ve Yönetimi

Kubernetes Nedir?

Başlarken not: Kurulum işlemlerinde Windows 11 işletim sistemi kullandım. Ancak, referans olarak paylaştığım indirme bağlantılarında farklı işletim sistemleri için seçenekler yer alıyor. Komut satırı örnekleri tüm işletim sistemlerinde geçerli olacaktır.

kubectl Kurulumu

Yazımızın giriş bölümünde bahsettiğim, Kubernetes API istemcisi kubectl tüm yönetim işlemlerinde bize yardımcı olacak. İndirme bağlantısında, MacOS, Linux ve Windows için bağlantılarını bulabilirsiniz.

Install Tools: https://kubernetes.io/docs/tasks/tools/

Windows kubectl 1.22 versiyonu için bulunduğum dizinde curl yardımı ile kurulumu aşağıdaki gibi tamamlıyorum.

curl -LO “https://dl.k8s.io/release/v1.22.0/bin/windows/amd64/kubectl.exe

Azure CLI Kurulumu

Azure Command Line, Azure servislerini yönetebilmek için kullandığımız komut satırı aracıdır. Bu aracı, Azure Portal’a bağlanarak Kubernetes config bilgilerini almak için kullanacağız. Böylece, bir önce ki adımda kurduğumuz kubectl konfigürasyonuna erişebiliyor olacağız. Alternatif işletim sistemleri için bağlantıya aşağıdan ulaşabilirsiniz. Ben bu yazı özelinde Windows seçimi ile devam edeceğim.

Link: Install Azure CLI

AKS Bağlantı

Tüm kurulumları tamamladık ve artık ortamımız hazır. Artık komutlarımıza geçebiliriz.

İlk olarak,

az login

Komutu ile Azure Portal bilgilerimizi girerek, login oluyoruz. Login işlemi başarılıysa,

az aks get-credentials –resource-group=msbil –name=msbil-cluster

Komutu ile cluster bilgilerimizi config dosyamıza ekliyoruz. Eğer işlemlerimiz doğru ise, aşağıdaki gibi bir çıktı almanız gerekiyor.

Merged “msbil-cluster” as current context in C:\Users\MSBAYIR\.kube\config

Artık, kubectl ile yönetmeye hazırız. Test için cluster içerisinde bir namespace oluşturuyorum.

kubectl create namespace test

create ns

Daha önce oluşturduğumuz bir kaynak olmadığı için şu anda görüntüleyemeyeceğiz. kubectl ile İleri Seviye Cluster Yönetimi konusunu serimizin devamında paylaşacağız. Bağlantı konusunda problem yaşarsanız bize Yorum ya da Soru Cevap bölümünden yazabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Fill out this field
Fill out this field
Lütfen geçerli bir e-posta adresi yazın.

Yeni
Sosyal Medya
Instagram
YouTube
Instagram
YouTube
Bu yazıyı beğendin mi? Arkadaşlarınla paylaş!
Benzer İçerikler: