Kubernetes'te Pod, Deployment ve Service kavramlarını açıklayın. Bir backend servisini nasıl ayağa kaldırırsınız?
Cevap
- Pod: Kubernetes'in en küçük çalıştırma birimi. Aynı ağ (IP) ve volume'ları paylaşan bir veya daha fazla container içerir. Pod'lar geçicidir; ölünce yerine farklı IP'li yenisi gelir.
- Deployment: istenen sayıda pod'un (replica) her zaman çalışmasını sağlar, rolling update ve rollback yönetir. Arka planda ReplicaSet kullanır.
- Service: değişen pod IP'lerinin önünde sabit bir DNS adı ve sanal IP sunar, trafiği label selector ile eşleşen sağlıklı pod'lara dağıtır.
apiVersion: apps/v1
kind: Deployment
metadata:
name: order-api
spec:
replicas: 3
selector:
matchLabels: { app: order-api }
template:
metadata:
labels: { app: order-api }
spec:
containers:
- name: api
image: registry.ornek.com/order-api:1.4.2
ports:
- containerPort: 8080
envFrom:
- configMapRef: { name: order-api-config }
- secretRef: { name: order-api-secrets }
---
apiVersion: v1
kind: Service
metadata:
name: order-api
spec:
selector: { app: order-api }
ports:
- port: 80
targetPort: 8080Küme içindeki diğer servisler artık http://order-api adresine istek atabilir.
Diğer temel nesneler
| Nesne | Amaç |
|---|---|
| ConfigMap / Secret | Konfigürasyon ve gizli bilgileri image dışında tutmak |
| Ingress / Gateway API | Dış HTTP trafiğini host/path'e göre servislere yönlendirmek |
| StatefulSet | Sabit kimlik ve disk gerektiren uygulamalar (DB, Kafka) |
| HorizontalPodAutoscaler | CPU/bellek veya özel metriğe göre replica sayısını ayarlamak |
| Job / CronJob | Tek seferlik veya zamanlanmış işler (migration, rapor) |
kubectl apply -f order-api.yaml
kubectl get pods -l app=order-api
kubectl logs -f deploy/order-api
kubectl rollout undo deploy/order-apiİlgili Docker & DevOps soruları
- Distributed tracing nasıl çalışır? Trace context servisler arasında nasıl taşınır ve OpenTelemetry'nin rolü nedir?
- Observability nedir? Log, metric ve trace arasındaki fark nedir ve her biri ne için kullanılır?
- Rolling update, blue-green ve canary deployment stratejileri arasındaki farklar nelerdir?
- Ortam değişkenleri ve secret'lar (şifre, API anahtarı) güvenli şekilde nasıl yönetilir?
- CI/CD nedir? Tipik bir backend CI/CD pipeline'ının aşamaları nelerdir?
- İyi bir Dockerfile nasıl yazılır? Multi-stage build ne işe yarar?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.