Kubernetes (K8s) Nedir? Container Orkestrasyon Rehberi

z

zafer ak

Yazar

12 December 2025 2 dakika okuma 2 görüntülenme
Kubernetes (K8s) Nedir? Container Orkestrasyon Rehberi
Kubernetes ile container yönetimi, deployment stratejileri, scaling ve load balancing. Production ortamı için K8s best practices.

Kubernetes Nedir?

Kubernetes (K8s), Google tarafından geliştirilen ve şu anda Cloud Native Computing Foundation (CNCF) tarafından yönetilen açık kaynaklı container orkestrasyon platformudur.

Neden Kubernetes?

  • Otomatik Scaling: Trafik artışına göre otomatik ölçeklendirme
  • Self-healing: Başarısız container'ları otomatik yeniden başlatma
  • Load Balancing: Trafik dağılımı ve service discovery
  • Rolling Updates: Sıfır kesinti ile güncelleme
  • Secret Management: Güvenli yapılandırma yönetimi

Kubernetes Mimarisi

Control Plane

  • API Server: Tüm iletişimin merkezi
  • etcd: Cluster state veritabanı
  • Scheduler: Pod yerleştirme kararları
  • Controller Manager: Cluster durumu yönetimi

Worker Nodes

  • Kubelet: Node üzerinde pod yönetimi
  • Kube-proxy: Network proxy
  • Container Runtime: Docker, containerd

Temel Kavramlar

Pod

Kubernetes'in en küçük deployment birimi. Bir veya daha fazla container içerir.

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
spec:
  containers:
  - name: nginx
    image: nginx:1.25
    ports:
    - containerPort: 80

Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - name: app
        image: myapp:v1
        resources:
          limits:
            memory: "128Mi"
            cpu: "500m"

Service

apiVersion: v1
kind: Service
metadata:
  name: web-service
spec:
  selector:
    app: web
  ports:
  - port: 80
    targetPort: 8080
  type: LoadBalancer

kubectl Komutları

# Cluster bilgisi
kubectl cluster-info

# Pod listele
kubectl get pods

# Deployment oluştur
kubectl apply -f deployment.yaml

# Scaling
kubectl scale deployment web-app --replicas=5

# Logs
kubectl logs pod-name

# Pod'a bağlan
kubectl exec -it pod-name -- /bin/bash

Managed Kubernetes Servisleri

  • Amazon EKS: AWS Elastic Kubernetes Service
  • Google GKE: Google Kubernetes Engine
  • Azure AKS: Azure Kubernetes Service
  • DigitalOcean DOKS: Uygun fiyatlı alternatif

Sonuç

Kubernetes, modern cloud-native uygulamalar için standart haline geldi. Öğrenme eğrisi dik olsa da, büyük ölçekli uygulamalar için vazgeçilmezdir.

İlgili Yazılar