müfettiş
Moderatör
- Katılım
- 20 Ocak 2024
- Mesajlar
- 325
- Tepkime puanı
- 1
- Puanları
- 18
Kubernetes (K8s) Mimarisi: Control Plane ve Worker Node Mantığı
Giriş: Konteynerlerin Kaptanı
Docker ile uygulamaları konteynerlere koymayı öğrendik. Peki ya elinizde 1.000 tane konteyner varsa? Bunlardan hangisi hangi sunucuda çalışacak? Biri çökerse kim yeniden başlatacak? Trafik arttığında kim yeni kopyalar oluşturacak?İşte bu soruların cevabı Kubernetes (K8s)'tir. Google tarafından geliştirilen K8s, konteynerleştirilmiş uygulamaların otomatik dağıtımını, ölçeklendirilmesini ve yönetimini sağlayan bir orkestrasyon platformudur. K8s'i devasa bir yük gemisinin kaptanı gibi düşünebilirsiniz.
Temel Mimari: Beyin ve Kaslar
Kubernetes kümesi (Cluster) iki ana bölümden oluşur:- Control Plane (Master Node): Karar veren beyin takımı.
- Worker Nodes: İşin yapıldığı kas gücü (Sunucular).
1. Control Plane Bileşenleri (Beyin)
Kaptan köşkünde şu kritik parçalar çalışır:- kube-apiserver: Kümenin "Resepsiyonu"dur. Siz (veya diğer bileşenler) kümeyle konuşmak istediğinizde (örn: kubectl komutuyla) buraya gelirsiniz. Kapıdaki tek giriş noktasıdır.
- etcd: Kümenin "Hafızası"dır. Tüm verilerin (hangi Pod nerede, durumu ne?) tutulduğu anahtar-değer (key-value) veritabanıdır.
- kube-scheduler: "Lojistik Müdürü"dür. Yeni oluşturulacak bir Pod için en uygun Node'u seçer. (Örn: "Bu Pod 4GB RAM istiyor, Node-3'te boş yer var, oraya gitsin.")
- kube-controller-manager: "Denetleyici"dir. Sistemin olması gereken durumunu (Desired State) korur. "Bana 3 tane Nginx lazım" derseniz, sürekli sayar; biri çökerse yeni bir tane oluşturulması emrini verir.
2. Worker Node Bileşenleri (Kaslar)
Uygulamalarınızın (Konteynerlerin) fiilen çalıştığı sunuculardır.- Kubelet: "Gemici"dir. Control Plane'den gelen emirleri dinler. "Burada bir konteyner çalıştır" denildiğinde Docker'a (veya Containerd'ye) gidip işi yaptırır. Ayrıca Node'un sağlık durumunu raporlar.
- Kube-proxy: "Ağ Sorumlusu"dur. Ağ kurallarını yönetir ve trafiğin doğru Pod'a gitmesini sağlar.
- Container Runtime: Motorun kendisidir (Docker, containerd, CRI-O). Konteyneri çalıştıran yazılımdır.
Atomik Birim: Pod Nedir?
Kubernetes'te en küçük birim konteyner değil, Pod'dur.- Bir Pod, genellikle tek bir konteyner içerir (bazen yardımcı konteynerlerle birlikte birden fazla olabilir).
- Pod'lar ölümlüdür (Ephemeral). Bir Pod öldüğünde "dirilmez", yerine yenisi oluşturulur.
- Her Pod'un kendi IP adresi vardır.
K8s Nasıl Çalışır? (Bildirimsel Model)
Kubernetes Declarative (Bildirimsel) çalışır. Siz ona "Nasıl yapacağını" söylemezsiniz, "Ne istediğinizi" söylersiniz.- Yanlış: "Sunucu 1'e git, Docker run komutunu çalıştır." (Imperative)
- Doğru: "Bana her zaman çalışan 3 adet Nginx kopyası ver." (Declarative - YAML dosyası ile).