Bu belge, Kubernetes kümesinin kalbini oluşturan temel bileşenlerin her birini detaylı bir şekilde açıklamaktadır. Kontrol Düzlemi (Master Node) ve Çalışan Düğüm (Worker Node) bileşenlerinin görevlerini, önemlerini ve birbirleriyle nasıl etkileşim kurduklarını daha derinlemesine anlamak için bu rehberi kullanabilirsiniz.
Kubernetes'in modüler yapısı sayesinde her bir bileşen belirli bir görevi yerine getirir ve bu bileşenlerin uyumlu çalışması, konteynerli uygulamaların otomatik dağıtımını, ölçeklendirilmesini ve yönetimini mümkün kılar.
Kubernetes Kümesine Genel Bakış
Kubernetes kümesi, Master Node ve Worker Node'lardan oluşan dağıtılmış bir sistemdir. İşte bu yapının basitleştirilmiş bir görseli:
Kubernetes Kümesi
Kontrol düzlemi, kümenin yönetimini üstlenirken, çalışan düğümler uygulamaları yürütür.
Kontrol Düzlemi (Master Node) Bileşenleri
Kontrol düzlemi, kümenin beyni gibidir. Kümenin genel durumunu yönetir ve iş yüklerinin doğru şekilde dağıtılmasını sağlar. Bu bileşenler, kümenin kararlılığı ve işleyişi için hayati öneme sahiptir.
Kontrol Düzlemi İç Mimarisi
Kontrol Düzlemi (Master Node)
API sunucusu merkezde yer alırken, diğer bileşenler etcd'den bilgi alır ve küme durumunu yönetir.
etcd
etcd, Kubernetes kümesindeki tüm yapılandırma verilerini, kümenin durumunu ve diğer kalıcı bilgileri depolayan, dağıtılmış, tutarlı ve yüksek erişilebilirliğe sahip bir anahtar-değer (key-value) deposudur. Kümedeki tüm bileşenlerin güncel bilgilere göre kendilerini yapılandırmasına yardımcı olur. Tüm Kubernetes düğümlerinin etcd'ye erişebilmesi gereklidir ve etcd, kümenin tek doğruluk kaynağı olarak işlev görür. Herhangi bir Kubernetes nesnesi (Pod, Deployment, Service vb.) oluşturulduğunda veya güncellendiğinde, bu değişiklikler etcd'ye kaydedilir.
Rolü: Kümenin beyni ve tek doğruluk kaynağı.
kube-apiserver
kube-apiserver, Kubernetes küme mekanizmasının merkezinde yer alır ve tüm kümenin ana yönetim noktasıdır. Hem içeriden (diğer kontrol düzlemi bileşenleri, kubelet) hem de dışarıdan (kubectl komut satırı aracı, API istemcileri) gelen tüm API isteklerini kabul eder, doğrular ve işler. etcd veritabanına yapılan tek bağlantı bu araç üzerinden gerçekleşir, bu da tutarlı bir durum yönetimini garanti eder. Tüm yönetim ve orkestrasyon işlemleri kube-apiserver aracılığıyla yürütülür.
Rolü: Kümenin giriş kapısı ve merkezi iletişim noktası.
kube-scheduler
kube-scheduler, yeni oluşturulan Pod'ları izler ve hangi düğümde (Worker Node) çalışacaklarını belirler. Bu kararı verirken iş yükünün gereksinimlerini (CPU, bellek, depolama gibi kaynaklar), mevcut altyapıyı (düğümlerin kapasitesi, taint ve tolerasyonlar, label'lar, düğüm üzerinde coğrafi kısıtlamalar) ve Pod'lar arası affinite/anti-affinite kurallarını dikkate alır. İş yüklerinin mevcut kaynaklardan daha fazla gereksinimi olmadığından emin olmak için her ana bilgisayardaki kullanılabilir kapasitenin izlenmesinden sorumludur. Bir Pod uygun bir düğüme konuşlandırılana kadar bu işlem devam eder.
Rolü: Akıllı iş yükü dağıtıcısı.
kube-controller-manager
kube-controller-manager, Kubernetes kümesinin durumunu düzenleyen ve iş yükü yaşam döngülerini yöneten farklı denetleyicileri (Controller) yönetir. Birden fazla denetleyicinin tek bir ikili içinde toplanmış halidir. Örneğin, `ReplicaSet Controller`, bir uygulamanın kaç adet Pod ile çalışacağını belirler ve bu sayıyı otomatik olarak korur; eğer bir Pod başarısız olursa, denetleyici yeni bir Pod başlatır. API sunucusu üzerinden değişiklikleri sürekli izler ve istenen durumu (bildirimsel olarak tanımlanan) sağlamak için prosedürleri uygular. Bu, bir uygulamanın yukarı veya aşağı ölçeklendirilmesini, uç noktaların (endpoints) ayarlanmasını içerebilir.
Rolü: Kümenin durumunu koruyan otomatik pilot.
cloud-controller-manager (isteğe bağlı)
cloud-controller-manager, Kubernetes'in Google Cloud Platform (GCP), AWS, Azure gibi bulut sağlayıcılarıyla entegre çalışmasını sağlar. Bu bileşen, buluta özgü kontrol mantığını Kubernetes çekirdek kodundan ayırır. Örneğin, bir `LoadBalancer` Servis türü oluşturulduğunda, `cloud-controller-manager` ilgili bulut sağlayıcısında bir yük dengeleyici provision eder. Bu, bulut sağlayıcılarının sunduğu altyapı rotaları, yük dengeleme ve depolama birimleri gibi ekstra özelliklerin Kubernetes içinde tutarlı bir şekilde kullanılmasını mümkün kılar.
Rolü: Bulut sağlayıcılarla köprü kurar.
Çalışan Düğüm (Worker Node) Bileşenleri
Çalışan düğümler, Master Node'dan aldıkları talimatlarla konteynerli uygulamaları fiilen çalıştıran ve yöneten makinelerdir. Her bir çalışan düğüm, iş yüklerini sorunsuz bir şekilde yürütmek için aşağıdaki bileşenlere ihtiyaç duyar.
Çalışan Düğüm İç Mimarisi
Çalışan Düğüm (Worker Node)
Kubelet, Master Node ile iletişim kurar ve konteyner çalışma zamanını yönetir.
kubelet
kubelet, her çalışan düğümde (Worker Node) bulunan ana ajandır. Kontrol Düzlemi'nden (özellikle kube-apiserver'dan) gelen komutları alır ve Pod özelliklerini (YAML veya JSON dosyaları) işler. Temel görevi, düğümde çalışması gereken Pod'ların gerçekten çalıştığından ve sağlıklı olduğundan emin olmak için konteyner çalışma zamanı ile etkileşime girmektir. Ayrıca, Pod'ların depolama (Volume), sır (Secret) veya yapılandırma haritaları (ConfigMap) gibi kaynaklara erişimini sağlar. Kubelet, düğümün ve üzerindeki Pod'ların durumunu Master Node'a bildirir.
Rolü: Düğümdeki orkestra şefi.
kube-proxy
kube-proxy, her düğümde çalışan bir ağ proxy'sidir. Temel görevi, Kubernetes servisleri için ağ kurallarını yönetmek ve küme içindeki ve dışındaki trafiği doğru Pod'lara yönlendirmektir. Bu işlemi genellikle `iptables` kuralları veya IPVS (IP Virtual Server) kullanarak yapar. kube-proxy, bir Servis'in sanal IP'sine gelen istekleri, o Servis'in arkasındaki uygun Pod'lardan birine yük dengeleme yaparak iletir. Bu sayede, Pod'ların IP adresleri değişse bile, Servisler üzerinden uygulamalara istikrarlı bir şekilde erişim sağlanır.
Rolü: Küme içi trafik polisi ve basit yük dengeleyici.
Container Runtime (Konteyner Çalışma Zamanı)
Container Runtime, konteynerleri fiilen çalıştıran yazılımdır. Konteyner imajlarını çeker, konteynerleri başlatır, durdurur ve yönetir. Kubelet'ten aldığı talimatlarla bu işlemleri gerçekleştirir. En bilinen ve yaygın kullanılan konteyner çalışma zamanı Docker olsa da, containerd ve CRI-O gibi diğer konteyner çalışma zamanları da Kubernetes tarafından desteklenir. Kubernetes, Container Runtime Interface (CRI) adı verilen bir arayüz tanımlayarak, farklı konteyner çalışma zamanlarının Kubernetes ile entegre olabilmesini sağlar.
Rolü: Konteynerlerin motoru.
Tüm Bileşenlerin Özeti
Aşağıdaki tablo, Kubernetes kümesinin tüm temel bileşenlerini ve ana görevlerini hızlı bir bakışla özetlemektedir.
Bileşen Tipi | Bileşen Adı | Görevi |
---|---|---|
Kontrol Düzlemi | etcd | Kümenin tüm yapılandırma verilerini ve durumunu depolayan dağıtılmış anahtar-değer deposu. |
kube-apiserver | Küme için merkezi yönetim noktası; gelen istekleri işler, doğrular ve etcd ile bağlantı kurar. | |
kube-scheduler | Yeni Pod'ları izler ve iş yükü gereksinimlerine göre uygun çalışan düğümlere yerleştirir. | |
kube-controller-manager | Kümenin istenen durumunu korumak için çeşitli denetleyicileri yönetir. | |
cloud-controller-manager | Bulut sağlayıcılarıyla entegrasyonu sağlar, buluta özgü özellikleri yönetir (yük dengeleyiciler, ağlar). | |
Çalışan Düğüm | kubelet | Düğümdeki Pod'ların çalıştığından emin olur, Master Node'dan komut alır. |
kube-proxy | Küme içi ağ iletişimi ve Servis keşfi için ağ kurallarını yönetir. | |
Container Runtime | Konteynerleri fiilen çalıştıran yazılım (örn. Docker, containerd). |