Reklam Alanı
Sistem Mimarisi
Sistem Mimarisi

Kubernetes'e Giriş: Pod, Node ve Cluster Kavramları

24 Temmuz 2026 · 3 dk okuma · 25 okunma

Kubernetes (k8s), konteynerleştirilmiş uygulamaların otomatik dağıtımını, ölçeklendirilmesini ve yönetimini sağlayan bir orkestrasyon platformudur. Docker tek bir konteyneri nasıl çalıştıracağınızı çözerken, Kubernetes yüzlerce konteyneri onlarca sunucu üzerinde nasıl koordine edeceğinizi çözer. Bu makalede platformun üç temel yapı taşını inceliyoruz: pod, node ve cluster.

Pod: En Küçük Dağıtım Birimi

Kubernetes'te doğrudan konteyner çalıştırılmaz; konteynerler pod adı verilen bir sarmalayıcı içinde çalıştırılır. Bir pod, aynı ağ namespace'ini ve depolama birimlerini paylaşan bir veya birden fazla konteynerden oluşur. Genellikle bir pod tek bir ana konteyner ve ona yardımcı olan "sidecar" konteynerler (loglama ajanı, proxy gibi) içerir. Basit bir pod manifesti şöyle görünür:

apiVersion: v1
kind: Pod
metadata:
  name: web-pod
  labels:
    app: web
spec:
  containers:
    - name: nginx
      image: nginx:1.25-alpine
      ports:
        - containerPort: 80
      resources:
        limits:
          memory: "256Mi"
          cpu: "500m"

Pod'lar geçicidir (ephemeral); bir pod öldüğünde yeniden aynı kimlikle dirilmez, yerine yenisi oluşturulur. Bu yüzden pratikte pod'lar doğrudan değil, Deployment veya StatefulSet gibi üst düzey kontrolcüler aracılığıyla yönetilir.

Node: İş Yükünün Çalıştığı Makine

Bir node, pod'ların fiilen çalıştığı fiziksel veya sanal bir makinedir. Her node üzerinde üç temel bileşen bulunur:

  • kubelet: Node üzerindeki pod'ların istenen durumda çalıştığından emin olan ajan.
  • container runtime: containerd veya CRI-O gibi, konteynerleri fiilen çalıştıran katman.
  • kube-proxy: Node üzerindeki ağ kurallarını yöneterek servislere erişimi sağlayan bileşen.

Cluster: Node'lar ve Control Plane

Bir cluster, bir veya daha fazla node ile bunları yöneten control plane'in birleşiminden oluşur. Control plane şu bileşenleri barındırır:

  • kube-apiserver: Tüm kubectl komutlarının ve iç bileşenlerin konuştuğu tek giriş noktası.
  • etcd: Cluster'ın tüm durumunu tutan dağıtık key-value veritabanı.
  • scheduler: Yeni oluşturulan pod'ları hangi node'a yerleştireceğine karar verir.
  • controller-manager: Deployment, ReplicaSet gibi kaynakların istenen durumla gerçek durumu eşleştirmesini sağlayan kontrol döngülerini çalıştırır.

Basit bir örnek üzerinden: kubectl apply -f deployment.yaml komutu apiserver'a gider, etcd'ye yazılır, scheduler uygun node'u seçer, o node'daki kubelet container runtime'a talimat vererek konteyneri başlatır.

Deployment Örneği

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
        - name: nginx
          image: nginx:1.25-alpine

Bu manifest, üç kopyalı (replica) bir pod grubunu tanımlar; bir pod çökerse controller-manager otomatik olarak yenisini oluşturur.

Sonuç

Pod, node ve cluster üçlüsü Kubernetes'in kavramsal iskeletini oluşturur. Bu temel anlaşıldıktan sonra Service, Ingress, ConfigMap ve Secret gibi kaynaklar da daha kolay yerine oturur. Konteyner izolasyonunun teknik temelleri için Docker mimarisi yazımıza bakabilirsiniz.

İlgili Yazılar