Kubernetes Nedir ? | Kubernetes Dersleri 1
Kubernetes k8s olarak kısaltılmaktadır. Bu kısaltma ‘k’ ile ‘s’ arasında bulunan 8 harften gelmektedir.
Kubernetes Mimarisi
Kubernetes, Master ve Worker Node olarak adlandırılan 2 yapıdan oluşur.
Node nedir diye soruyorsanız eğer her bir linux makinesine Node denmektedir.
ilk olarak kubernetes Master Node içerisindeki bileşenleri inceleyelim.
Master Node Bileşenleri
etcd: Kubernetes ve yapılandırmaları hakkındaki tüm bilgileri tutan, birden fazla node ‘da çalışan yüksek erişimli bir veritabanıdır. Değerleri key value şeklinde tutar. Tuttuğu bilgilere örnek vermek gerekirse uygulamanızın kaç pod’u ayakta, hangi makinede, vb.
kube-apiserver: Kubernetes işlemlerini yapmak için sağlanan API server. Kubernetes ‘in frontend’i olarak tanimlayabiliriz. Kubeconfig dosyası server tarafında kubernetes API ile haberleşmeyi sağlar.
kube-controller-manager: İstenilen yapılandırmaları çalıştıran, kaç adet çalıştığını kontrol eden ve kaç adet çalışması gerektiğini kontrol edip sayıyı arttırıp azaltan yapıdır. Node Controller, Job Controller, Endpoint Controller vb.)
kube-scheduler: Makinalardaki yük oranına göre yeni gelen pod’un hangi makinede ayağa kalkması gerektiğini belirtir.
Worker Node Bileşenleri
kubelet: Master Node’dan gelen istekleri yerine getiren yapı. etcd ile iletişime geçip verileri okuyup doğrular.
kube-proxy: Podların dışarıdan erişebilir olmasını sağlar. Gelen istekleri doğru container’a yollanmasına yardımcı olur ve loadbalancing yapar.
container-engine(Container Runtime): Container çalıştırılması için gerekli servis. Eskinden k8s container engine olarak docker kullansa da 2021 in sonlarına doğru tamamen kaldırılacak.
Yukarıdaki resimde API server ile haberleşen bir UI ve CLI (komut satiri aracı) bulunmaktadır. Resim eski olduğu için Worker Nodelar Docker içermektedir.
Bu yazımda Kubernetes nedir? sorusunun cevabini öğrendik ve Kubernetes Mimarisi hakkında fikir edinmiş olduk.
Bir sonraki blog yazimda Kubernetes konseptlerini (Pod, Deplyments, Jobs vb.) anlatacağım.