İçeriğe atla
Makale

Kubernetes Nedir? Pod, Node ve Cluster Mantığı

Kubernetes'in control plane ve node mimarisini, Pod'dan Gateway API'ye temel nesnelerini, sürüm takvimini, güvenliğini ve yönetilen seçenekleri anlattık.

Oğuzhan Gerçek··7 dk okuma
Kubernetes Nedir? Pod, Node ve Cluster Mantığı

Kısa cevap: Kubernetes, container'a alınmış uygulamaları birden fazla makineden oluşan bir cluster'da çalıştıran, ayakta tutan ve ölçekleyen açık kaynak bir platformdur. Ona istediğiniz sonucu bildirirsiniz, örneğin bir uygulamanın üç kopyasını; control plane de cluster'ı sürekli bu hedefe yaklaştırır. Uygulamalar, container'larını taşıyan Pod'lar hâlinde node adı verilen sanal ya da fiziksel makinelerde çalışır. Bedeli işletim yükü: her sürüm yaklaşık bir yıl yama alır, birçok güvenlik önlemi de varsayılan olarak kapalı gelir. Asıl karar çoğu zaman Kubernetes'i kendiniz mi işleteceğiniz, yoksa yönetilen bir hizmet mi kullanacağınızdır.

Kubernetes nedir, ne işe yarar?

Kubernetes belgelerindeki tanıma göre Kubernetes, container'a alınmış iş yüklerini ve servisleri yönetmek için taşınabilir, genişletilebilir, açık kaynak bir platform. Adı Yunanca dümenci ya da kılavuz kaptan demek; K8s kısaltması, K ile s arasındaki sekiz harften geliyor. Kubernetes, Cloud Native Computing Foundation'ın (CNCF) ilk projesiydi; 6 Mart 2018'de vakıftan mezun olan (graduated) ilk proje oldu. CNCF'in Eylül 2025'te 628 katılımcıyla yapılan yıllık anketine göre container kullanıcılarının %82'si Kubernetes'i production'da çalıştırıyor; 2023'te bu oran %66'ydı.

Kubernetes image üretmez; Docker gibi araçlarla paketlenen container'ları çalıştırır. Docker yazımızda saydığımız yeniden başlatma, erişime açma ve kontrollü sürüm geçişinin yanında depolama bağlama, container'ları node'lara yerleştirme, parola ve yapılandırma yönetimi, yatay ölçekleme de işleri arasında.

Kubernetes mimarisi: control plane ve node

Bir Kubernetes cluster'ı, bir control plane ile bir ya da daha fazla worker node'dan oluşur. Mimari belgesine göre node, cluster'a göre sanal ya da fiziksel bir makine olabilir (sanal makine yazımız). Control plane bileşenleri şunlar:

  • kube-apiserver: Kubernetes'in HTTP API'sini sunar; kullanıcılar, kubectl ve cluster'ın kendi parçaları bu API üzerinden konuşur.
  • etcd: Bütün API verisini tutan tutarlı ve yüksek erişilebilir anahtar-değer deposu.
  • kube-scheduler: Henüz bir node'a atanmamış Pod'lara uygun node'u seçer.
  • kube-controller-manager: API'nin davranışını uygulayan controller'ları çalıştırır.

Her node'da Pod'ların çalışmasını sağlayan kubelet, containerd ya da CRI-O gibi bir container runtime ve Service'lerin ağ kurallarını tutan kube-proxy bulunur. Production'da control plane genellikle birden fazla makineye yayılır; hata toleransı buradan gelir.

Temel nesneler: Pod'dan Gateway API'ye

  • Pod: Kubernetes'te oluşturulabilen en küçük birim: depolama ve ağ kaynaklarını paylaşan bir ya da birden fazla container. Geçicidir ve genellikle bir iş yükü kaynağıyla oluşturulur.
  • ReplicaSet ve Deployment: ReplicaSet, belirli sayıda Pod kopyasının her an çalışmasını sağlar. Deployment Pod'lar ve ReplicaSet'ler için bildirime dayalı güncelleme sunar; belgeler ReplicaSet'i Deployment üzerinden kullanmayı öneriyor.
  • Service: Pod'lar gelip gittikçe IP adresleri değişir; Service uygulamayı tek bir uç noktanın (endpoint) arkasından ağa açar. Varsayılan ClusterIP türüne yalnızca cluster içinden ulaşılır; LoadBalancer türü ise dışarıdaki bir load balancer'ı kullanır.
  • Ingress ve Gateway API: Ingress, dışarıdan gelen HTTP ve HTTPS trafiğini kurallarla Service'lere yönlendirir. Kubernetes projesi Ingress API'sini dondurdu; yerine gelişmiş trafik yönlendirme sunan Gateway API'yi öneriyor. Ingress NGINX controller'ının Kasım 2025'te duyurulan emeklilik takvimine göre Mart 2026'dan sonra güvenlik güncellemesi yayımlanmıyor. Nginx'i web sunucusu yazımızda anlattık.
  • ConfigMap ve Secret: ConfigMap gizli olmayan yapılandırmayı anahtar-değer çiftleri olarak, Secret ise parola, token ya da anahtar gibi az miktarda hassas veriyi tutar.
  • Namespace: Tek cluster içinde kaynak gruplarını birbirinden ayırır; kaynak adları yalnızca namespace içinde tekil olmalıdır.

Bildirime dayalı yönetim, kendini onarma ve ölçekleme

Belgelerin deyişiyle her nesne bir "niyet kaydı": spec alanına istenen durumu (desired state) yazarsınız, status alanı gerçek durumu gösterir. Controller'lar, odayı ayarlanan sıcaklığa getiren bir termostat gibi, gerçek durumu sürekli istenen duruma yaklaştırır. Kendini onarma da bu döngüden doğar: arızalanan node'daki Pod başka node'a taşınmaz, silinir; ReplicaSet eksilen kopyanın yerine yenisini açar. Pod'un trafiğe hazır olduğunu doğrulamayı Reliability Friday 02 yazımızda anlattık.

Ölçeklemeyi HorizontalPodAutoscaler (HPA) üstlenir: talebe göre bir iş yükünün Pod sayısını artırıp azaltır. Belgelerdeki örnekte HPA, ortalama CPU kullanımını %50'de tutacak biçimde kopya sayısını değiştiriyor.

Sürüm yaşam döngüsü: her yıl yükseltme

Kubernetes yılda yaklaşık üç sürüm çıkarıyor ve yalnızca son üç minor sürümün bakımını yapıyor. Sürüm sayfasına göre Ekim 2026 itibarıyla bunlar 1.37, 1.36 ve 1.35; her minor sürüm yaklaşık bir yıl yama desteği alıyor. 26 Ağustos 2026'da yayımlanan 1.37'nin destek sonu 28 Ekim 2027.

kubeadm ile kurulan bir cluster'ı yükseltirken minor sürüm atlamak desteklenmiyor; iki sürüm geride kalan cluster, sırayla iki sürüm yükseltmesi ister. kubeadm'in ürettiği istemci sertifikaları da bir yılda sona eriyor ve control plane yükseltmesi sırasında yenileniyor; yükseltmeyi erteleyen ekip bu süreyi ayrıca izlemek zorunda kalır.

Kubernetes güvenliği: RBAC, Secret ve ağ politikası

NSA ve CISA'nın Ağustos 2022 tarihli Kubernetes Hardening Guide belgesi, Kubernetes'i veri ve işlem gücü hırsızlığı için değerli bir hedef olarak görüyor. Rehbere göre namespace'ler kendiliğinden yalıtılmaz, Pod'lara varsayılan olarak hiçbir ağ politikası (network policy) uygulanmaz. Kubernetes belgeleri de Secret'ların varsayılan olarak etcd'de şifrelenmeden saklandığını, bir namespace'te Pod oluşturabilen kullanıcının oradaki her Secret'ı okuyabildiğini yazıyor. İlk adımlar şunlar:

  • Secret'lar için durağan şifrelemeyi (encryption at rest) açmak.
  • RBAC yetkilerini en az yetki ilkesiyle vermek, cluster-admin hesabını yalnızca gerçekten gerektiğinde kullanmak (IAM yazımız).
  • Bütün giriş ve çıkış trafiğini reddeden varsayılan bir ağ politikasıyla başlamak.
  • Container'ları en az yetkiyle çalıştırmak, image'ları zafiyete ve yanlış yapılandırmaya karşı taramak, denetim loglarını izlemek (log yazımız).

Kubernetes ne zaman gereksiz bir karmaşıklıktır?

CNCF anketinde katılımcıların en çok andığı zorluk teknik değil: %47 ile geliştirme ekibindeki kültür değişimi. Eğitim eksikliği ve güvenlik %36'şar, karmaşıklık %34 ile onu izliyor. Belgelere göre production'a uygun bir cluster planlama ve hazırlık ister; yüksek erişilebilirlik için en az üç control plane node'u önerilir. Kubernetes uygulamanızı derlemez, veritabanı ya da cache sunmaz, log ve izleme çözümü de dayatmaz; bunlar ayrıca kurulur.

Birkaç container'dan oluşan, tek sunucuda çalışan ve seyrek değişen bir uygulamada bu yük çoğu zaman karşılığını vermez; çok container'lı uygulamaları tanımlayıp çalıştıran Docker Compose ya da yönetilen bir platform yetebilir. Kubernetes'in getirisi, çok sayıda servisi sık değiştiren ve onu işletecek bir platform ekibi olan kurumlarda ortaya çıkar.

Yönetilen Kubernetes mi, kendi kurulumunuz mu?

Kubernetes belgeleri, production cluster'ını kendiniz kurmadan önce bu işi kısmen ya da tamamen sağlayıcılara devretmeyi düşünmenizi öneriyor. Yönetilen control plane'de ölçek, erişilebilirlik, yama ve yükseltme sağlayıcının işidir:

  • Amazon EKS: AWS control plane'i yönetiyor, Auto Mode'da node'ları da üstleniyor. EKS içinde bir minor sürüm 14 ay standart, ardından 12 ay uzatılmış destek alıyor.
  • Azure Kubernetes Service (AKS): Microsoft'a göre control plane'i Azure oluşturup işletiyor; AKS Automatic node'ları da hazırlayıp yükseltiyor.
  • Google Kubernetes Engine (GKE): Google'a göre control plane ve sistem bileşenleri Google Cloud'un sorumluluğunda; önerilen Autopilot modunda worker node'lar da buna dahil.

Sorumluluk yine de paylaşılır: Amazon'un EKS güvenlik belgesine göre control plane ve etcd'den AWS sorumlu; node ve container yapılandırması, işletim sistemi yamaları, ağ kuralları ve erişim yönetimi kullanıcıda kalıyor. Kendi kurulumda bu listeye control plane'in kendisi de eklenir. Bu katmanı cloud-native platformlar, platform ekibini DevOps ve platform mühendisliği, CI/CD ve günlük işletimi DevOps çözümleri hizmetimizde ele alıyoruz.

Sık sorulan sorular

Kubernetes ne işe yarar? Container'a alınmış uygulamaları birden fazla sunucuda çalıştırır; arızalanan kopyanın yerine yenisini açar, trafiği hazır Pod'lara yönlendirir ve talebe göre ölçekler.

K8s ne demek? Kubernetes'in kısaltması: K ile s arasındaki sekiz harfin yerine 8 yazılır.

Pod nedir? Kubernetes'in en küçük çalıştırma birimi: ağ ve depolama kaynaklarını paylaşan bir ya da birden fazla container.

Kubernetes cluster nedir? Bir control plane ile uygulamaların çalıştığı worker node'lardan oluşan makine grubudur.

Yönetilen Kubernetes nedir? Control plane'in işletimini bulut sağlayıcısının üstlendiği Kubernetes hizmetidir; Amazon EKS, Azure AKS ve Google GKE buna örnektir. Uygulamaların sorumluluğu kullanıcıda kalır.

Kaynaklar