Kubernetes Nedir?

Kubernetes (K8s), konteyner uygulamaların dağıtımını, ölçeklendirilmesini ve yönetimini otomatikleştirmek için açık kaynaklı bir sistemdir.

Bu makalemde sizlere mümkün olduğunca fazla bilgi aktarmaya çalışacağım.

Sektörün ihtiyaçları neticesinde container yapılarının yoğun olarak kullanılmaya başlanmasıyla, yönetim ve operasyon yükünü kısıtlı personel ile kaldırabilmek adına bu sistemleri otonom haline getirmek kaçınılmaz bir hal aldı. Kubernetes’in öne çıktığı nokta tam olarak burası diyebilirim.

Google’ın GO dili kullanılarak geliştirdiği Kubernetes’i 2014 yılında açık kaynak hale getirildi. Google tarafından 2004 yılından beri kullanılmakta ve hali hazırda milyarlarca konteyner için kullanılıyor.

Container yapısı ve dağıtık sistemler hakkında bilgi sahibi değilseniz, konuyu daha iyi anlayabilmek adına bu makaleden aşağıdaki makaleme göz atmanızı öneririm.

Kubernetes Ne Yapar?

Kubernetes konteyner içerisindeki uygulama veya servislerinizin en iyi şekilde çalışmasını sağlar.

Servisleri izler, yük dengelemesi yapar, depolama alanlarınızı yönetir, (Yerel depolama birimlerinizden, Amazon servislerine, NFS ve iSCSI protokollerinden verilmiş depolama birimlerine kadar), secret ve konfigürasyon yönetiminizi yapar, konteynerlarınız hataya düştüğünde otomatik olarak onarmaya çalışır, çok basit şekilde yatayda genişlemenizi sağlar. (CPU kullanımına göre otomatik olarak yapılabilir.)

Kubernetes Bileşenleri

Master ve node (worker) olarak iki başlık altında bileşenleri inceleyelim.

Kubernetes Nedir?
Kubernetes Mimarisi

Master Bileşenleri

Master üzerindeki bileşenler aslında clusterımızın tüm kontrol fonksiyonlarını yerine getiren birimdir. Yönetim fonksiyonlarının yanısıra operasyonel kararları alan birim de burasıdır.

Master bileşenleri cluster içerisindeki herhangi bir makinede çalışabilmesi mümkündür ama kolaylık olması için kurulumda tüm master bileşenlerini bir makinede toplanır ve kullanıcı containerları bu makinede çalıştırılmaz.

Master içerisinde 5 bileşen bulunur;

kube-apiserver

Aslında herşey Kubernetes API Serverdan soruluyor, master içerisinden veya worker nodalardan gelen tüm istekler buradan yönetilir.

Yatay olarak genişler, yani genişlemek için yeni instance kurmanız gerekir.

etcd

Yüksek bulunabilirlik (HA), tutarlılık ve izlenebilirlik özelliklerine sahip dağıtık mimari ile tasarlanmış ve tüm cluster verisinin saklandığı bileşendir. Veriler key value database olarak adlandırılan bir yapıda saklanır.

kube-scheduler

API Server üzerinden yeni bir pod oluşturulması isteği geldiğinde, bu podun hangi node üzerinde çalışacağına karar veren birimdir.

kube-controller-manager

Master node üzerindeki kontrolcüleri yöneten birimdir. Şu an için toplamda 4 kontrolcü mevcut ve her bir kontrolcü aslında mantıksal olarak farklı işlemler olarak çalışıyor ama karmaşıklığı gidermek adına hepsi tek bir binary olarak derlenip tek bir işlem olarak çalışmaktadır.

Aslında tek bir işlem gibi çalışan bu mantıksal kontrolcüler aşağıdaki gibi;

  • Node Controller
  • Replication Controller
  • Endpoints Controller
  • Service Account & Token Controllers

cloud-controller-manager

Daha çok yeni olan bu bileşen cloud servis sağlayıcılar ile etkileşim içerisinde olan kontrolcülerdir. Bu binary 1.6 sürümü ile henüz alfa özellik olarak geldi. Henüz çok bir bilgim olmadığı için daha sonra bu kısma ekleme yapacağım.

Node Bileşenleri

kubelet

Clusterdaki her node üzerinde çalışan ajandır. Bu ajan konteynerların, pod içerisinde çalışmasını sağlar. Kubelet kubernetes tarafından oluşturulmayan konteynerları yönetemez.

kube-proxy

Node üzerindeki ağ iletişimini sağlar ve yönetir. Nodeların ağ iletişimleri için kural dizileri oluşturmanızı ve yönetebilmenizi de burası sağlar.

Container Runtime

Konteynerların çalışmasından sorumlu olan bileşendir. Kubernetes kendisi haricinde Docker, containerd, cri-o, rktlet gibi farklı konteynerları da desteklemekte.

Daha detaylı bilgileri benim de kaynak olarak kullandığım resmi web sitesi https://kubernetes.io/ adresinden edinebilirsiniz.

İLGİNİZİ ÇEKEBİLİR

VMware Update Manager The host returns esxupdate error codes: -1 Çözümü

VMware Update Manager üzerinde Lenovo/IBM repositorylerini ekledikten sonra karşıma çıkan hata ve çözümünü sizlerle paylaşıyorum. ...

Docker Nedir? Konteyner Nedir? (Container Architecture)

Bilindiği üzere IT dünyası çok hızlı gelişmekte ve trendler çok hızlı değişmekte. Bu makalemde de ...

VMware 6.7 U1 Güncellemesi Sonrasında Veeam B&R Hatası ve Çözümü

VMware 6.7 update 1 ile birlikte bir çok yenilik beraberinde geldi. Yalnız Veeam Backup and ...

VMware vSphere 6.7 Update 1 Yenilikleri – HTML5 Web Client

VMware vSphere 6.7 update 1 sürümü yayınlandı, uzun zamandır beklediğim özellikle bir konu haricinde yine ...

2 yorum

  1. Geri izleme. Docker Nedir? Konteyner Nedir? (Container Architecture) - Fatih Şölen | Bilgi Teknolojileri Blogu

  2. Geri izleme. VMware Project Pacific - Fatih Şölen | Bilgi Teknolojileri Blogu

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.

error: İçerik Korumalıdır !!