
Kubernetes'e Sıfırdan Başlangıç: Temel Kavramlar
2026-06-29 · 11 dk okuma
Kubernetes'i öğrenmenin önündeki en büyük engel terminoloji yoğunluğu. Ama aslında tüm bu kavramlar tek bir soruyu yanıtlar: 'Bir konteyner uygulamasını nasıl güvenilir şekilde çalıştırır ve ölçekleriz?' Kavramları bu soru etrafında görelim.
Pod: en küçük birim
Kubernetes doğrudan konteyner çalıştırmaz; onları Pod'ların içine sarar. Bir Pod, bir veya birkaç konteyneri, ortak ağ ve depolamayı paylaşacak şekilde bir arada tutar. Çoğu zaman bir Pod = bir uygulama konteyneri.
Deployment: Pod'ları yönetir
Tek başına Pod kırılgandır — düğüm çökerse Pod gider. Deployment, 'bu uygulamadan her zaman 3 kopya çalışsın' dediğin yerdir. Bir Pod ölürse Deployment yenisini oluşturur; sürüm güncellerken rolling update yapar.
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
spec:
replicas: 3
selector:
matchLabels: { app: web }
template:
metadata:
labels: { app: web }
spec:
containers:
- name: web
image: nginx:1.27Service: kararlı bir adres
Pod'lar gelip gider ve IP'leri sürekli değişir. Service, bir grup Pod'un önüne kararlı bir isim/IP koyar ve trafiği aralarında dağıtır. Böylece 'web' servisine konuşursun, arkadaki Pod'lar değişse de umursamazsın.
Hepsini birleştirince
- Konteynerini bir Pod'a koyarsın.
- Deployment ile kaç kopya isteyeceğini ve nasıl güncelleneceğini belirtirsin.
- Service ile ona kararlı bir erişim noktası verirsin.
- Ingress ile dış dünyadan HTTP trafiğini içeri yönlendirirsin.
İlk Deployment'ın CrashLoopBackOff verdi — çöz
İlk uygulamanı deploy ettin ama Pod sürekli yeniden başlıyor. Bu, yeni başlayanların 1 numaralı takıldığı yer. Teşhis akışı:
- 1kubectl get pods → STATUS ve RESTARTS sütunlarına bak
- 2kubectl logs <pod> → uygulama neden ölüyor? (ve önceki denemeyi: --previous)
- 3kubectl describe pod <pod> → Events + probe hataları
- 4Kök nedeni düzelt (config, image, port), rollout'u doğrula
$ kubectl get podsNAME READY STATUS RESTARTS AGEweb-6d9f-abc 0/1 CrashLoopBackOff 4 2m$ kubectl logs web-6d9f-abc --previousError: connect ECONNREFUSED postgres:5432 # uygulama DB'ye bağlanamıyor$ kubectl describe pod web-6d9f-abc | grep -A2 LivenessLiveness: http-get :3000/health delay=0s timeout=1s # /health DB'ye bağlı → sürekli fail# Çözüm: DB env'ini düzelt + liveness delay'ini artır, sonra:$ kubectl rollout status deploy/webdeployment "web" successfully rolled out # ✓
İpucu
CrashLoopBackOff = konteyner başlıyor ama ölüyor (logs'a bak). ImagePullBackOff = image çekilemiyor (describe → yanlış isim/tag/registry yetkisi). İki farklı dünya; karıştırma.
Mini görev
nginx:1.27 yerine var olmayan bir tag (nginx:yok) ile Deployment uygula → ImagePullBackOff'u gör. Sonra kasıtlı yanlış komutla çöken bir image çalıştır → CrashLoopBackOff'u gör. Her ikisini de logs/describe ile ayırt et ve düzelt.
Uygulamalı görev — tarayıcıda dene
Bu dört kavram (Pod, Deployment, Service, Ingress) Kubernetes'in %80'ini oluşturur. Gerisini bir cluster üzerinde deneyerek çok daha hızlı öğrenirsin — Cloudpuz lab'larında tam olarak bunu yaparsın.
Son doğrulama: 2026-07-17
Sıkça Sorulan Sorular
Kubernetes'te Pod nedir?
Pod, Kubernetes'in en küçük birimidir. Kubernetes doğrudan konteyner çalıştırmaz; onları Pod'ların içine sarar. Bir Pod, bir veya birkaç konteyneri ortak ağ ve depolamayı paylaşacak şekilde bir arada tutar ve çoğu zaman bir Pod bir uygulama konteynerine karşılık gelir.
Deployment ile Pod arasındaki fark nedir?
Tek başına Pod kırılgandır; düğüm çökerse Pod gider. Deployment ise 'bu uygulamadan her zaman şu kadar kopya çalışsın' dediğin yerdir: bir Pod ölürse yenisini oluşturur ve sürüm güncellerken rolling update yapar.
Kubernetes'te Service ne işe yarar?
Pod'lar gelip gider ve IP'leri sürekli değişir. Service, bir grup Pod'un önüne kararlı bir isim/IP koyar ve trafiği aralarında dağıtır; böylece servise konuşursun ve arkadaki Pod'lar değişse de umursamazsın.
CrashLoopBackOff hatası nasıl çözülür?
CrashLoopBackOff, konteynerin başlayıp sonra ölmesi demektir; teşhis için 'kubectl logs <pod>' (ve önceki denemeyi görmek için --previous) ile uygulamanın neden öldüğüne bakılır, ardından 'kubectl describe pod' ile Events ve probe hataları incelenir. Kök neden (config, image, port) düzeltilip rollout doğrulanır.
CrashLoopBackOff ile ImagePullBackOff arasındaki fark nedir?
CrashLoopBackOff, konteynerin başlayıp öldüğü durumdur ve logs'a bakılarak teşhis edilir. ImagePullBackOff ise image'ın çekilememesidir; nedeni yanlış isim/tag veya registry yetkisidir ve describe ile teşhis edilir. İki farklı dünyadır, karıştırılmamalıdır.
Okumak yetmez — dene.
Bu konuları tarayıcıda gerçek terminalde uygula.