Bu yazıda Kubernetes’in ne olduğuna ve Kubernetes terminolojilerine değineceğim. Günümüzde kullanılan yaygın konteyner teknolojisi Docker olsa da, Kubernetes başka teknolojileri de destekliyor. Ayrıca Docker ile ilgili yazdığım yazıya da buradan ulaşabilirsiniz.
Kubernetes, kapsayıcıya alınmış uygulamaların dağıtılması, yönetilmesi ve ölçeklendirilmesiyle ilgili birçok manuel işlemi otomatikleştiren açık kaynaklı bir container orchestration platformudur. Hızla büyüyen bir ekosisteme sahiptir. Kubernetes, Yunan dilinde dümenci veya pilot anlamına gelir ve bu isim buradan gelmektedir. Bir kısaltma olarak k8s’e rastlayabilirsiniz, “k” ve “s” arasındaki 8 harfin sayılmasıyla elde edilir. Google, Kubernetes projesini 2014’te açık kaynaklı hale getirdi.
Kubernetes’i deploy ettiğinizde bir cluster elde edersiniz.
Bir Kubernetes cluster’ı, kapsayıcıya alınmış uygulamaları çalıştıran node adı verilen bir dizi worker makinelerden oluşur. Her cluster’ın en az bir worker node‘u vardır.
Worker nodelar, uygulama iş yükünün bileşenleri olan Pod’ları barındırır. Control Plane, clusterdaki worker nodeları ve Podları yönetir. Production ortamlarında, Control Plane genellikle birden çok bilgisayarda çalışır ve bir cluster genellikle birden çok node’u çalıştırarak hata toleransı ve yüksek kullanılabilirlik sağlar.

Control Plane içerisindeki bileşenler
API Server
API Server, Kubernetes API’sini açığa çıkaran Kubernetes Control Plane‘nin bir bileşenidir. API Server, Kubernetes Control Plane için ön uçtur.
Bir Kubernetes API sunucusunun ana uygulaması kube-apiserver’dır. kube-apiserver, yatay olarak ölçeklenecek şekilde tasarlanmıştır; yani, daha fazla örnek dağıtarak ölçeklenir. Birkaç kube-apiserver örneği çalıştırabilir ve bu örnekler arasındaki trafiği dengeleyebilirsiniz.
Controller Manager
Denetleme işlemlerini çalıştıran Control Plane bileşenidir.
Mantıksal olarak, her denetleyici ayrı bir süreçtir, ancak karmaşıklığı azaltmak için hepsi tek bir ikili dosyada derlenir ve tek bir işlemde çalıştırılır.
Bu denetleyicilerin bazı türleri şunlardır:
- Node controller: Nodelar çöktüğünde fark etmekten ve yanıt vermekten sorumludur.
- Job controller: Tek seferlik görevleri temsil eden İş nesnelerini izler, ardından bu görevleri tamamlanana kadar çalıştırmak için Bölmeler oluşturur.
- Endpoints controller: Endpoints nesnesini doldurur.
Scheduler
Atanmış düğümü olmayan yeni oluşturulan Podları izleyen ve üzerinde çalışacakları bir düğüm seçen Control Plane bileşenidir.
Planlama kararları için dikkate alınan faktörler şunları içerir: bireysel ve toplu kaynak gereksinimleri, donanım / yazılım / politika kısıtlamaları, yakınlık ve afinite karşıtı spesifikasyonlar, veri konumu, iş yükü arası müdahaleler
Etcd
Tüm cluster verileri için Kubernetes’in yedekleme deposu olarak kullanılan tutarlı ve yüksek kullanılabilirliğe sahip key-value storage.