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 Sanal Makinelerde Disk UUID Görünmeme Sorunu

Disk UUID Nedir? UUID (Universal Unique Identifier) bir parmak izi gibi, “evrensel eşşiz tanımlayıcı” kelimelerinin ...

VMware ESXi ve Horizon DaaS Kritik OpenSLP Güvenlik Açığı

VMware ESXi kritik güvenlik açığı 2019 Tianfu Cup Pwn yarışmasında 360Vulcan takımının bulmuş olduğu ESXi ...

PowerCLI 11.5.0 Yenilikleri

PowerCLI 11.5.0 sürümü ile 20 den fazla cmdlet eklendi, mevcut cmdletler üzerinde zengin geliştirmeler yapıldı. ...

VMware vCenter Server (VCSA) Hostname Değiştirme

VMware vCenter Server 5.0 sürümü öncesinde yalnızca Microsoft Windows işletim sistemleri üzerine kurulabilen bir yazılımdı. ...

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 !!