Kubernetes Cluster Yönetimi: Best Practices

Kubernetes, container orchestration alanında endüstri standardı haline gelmiştir. Ancak Kubernetes cluster'larının etkili yönetimi, doğru stratejiler ve best practices gerektirir.

Cluster Tasarımı ve Planlama

Node Yapılandırması

Kubernetes cluster'ınızı tasarlarken dikkat etmeniz gereken temel noktalar:

  • Master Node'lar: Yüksek erişilebilirlik için en az 3 master node
  • Worker Node'lar: İş yüküne göre ölçeklendirilebilir yapı
  • Resource Allocation: CPU, memory ve storage planlaması

Networking Stratejisi

  • Service Mesh: Istio veya Linkerd kullanımı
  • Load Balancing: Ingress controller yapılandırması
  • Security: Network policies ve RBAC

Monitoring ve Observability

Monitoring Stack

# Prometheus ve Grafana kurulumu
apiVersion: v1
kind: ConfigMap
metadata:
  name: prometheus-config
data:
  prometheus.yml: |
    global:
      scrape_interval: 15s
    scrape_configs:
      - job_name: 'kubernetes-pods'

Logging Çözümleri

  • ELK Stack: Elasticsearch, Logstash, Kibana
  • Fluentd: Log aggregation
  • Loki: Grafana tabanlı log aggregation

Security Best Practices

RBAC (Role-Based Access Control)

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: pod-reader
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]

Network Policies

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  - Egress

Backup ve Disaster Recovery

Velero ile Backup

# Velero kurulumu
velero install \
  --provider aws \
  --plugins velero/velero-plugin-for-aws \
  --bucket k8s-backup \
  --backup-location-config region=us-west-2

Backup Stratejileri

  • Scheduled Backups: Günlük, haftalık backup'lar
  • Point-in-time Recovery: Belirli zaman noktasına geri dönüş
  • Cross-cluster Migration: Cluster'lar arası veri taşıma

Performance Optimization

Resource Management

  • Resource Requests/Limits: Pod'lar için kaynak sınırları
  • Horizontal Pod Autoscaling: Otomatik ölçeklendirme
  • Vertical Pod Autoscaling: Dikey ölçeklendirme

Storage Optimization

  • Persistent Volumes: Uygun storage class seçimi
  • Storage Classes: SSD vs HDD performans karşılaştırması
  • Volume Snapshots: Veri koruma stratejileri

Troubleshooting

Debug Teknikleri

# Pod durumunu kontrol et
kubectl describe pod <pod-name>

# Log'ları incele
kubectl logs <pod-name>

# Exec ile pod'a bağlan
kubectl exec -it <pod-name> -- /bin/bash

Common Issues

  • Pod CrashLoopBackOff: Uygulama hataları
  • Pending Pods: Resource yetersizliği
  • ImagePullBackOff: Container image sorunları

Sonuç

Kubernetes cluster yönetimi, sürekli öğrenme ve adaptasyon gerektiren bir süreçtir. Doğru monitoring, security ve backup stratejileri ile production-ready bir Kubernetes ortamı oluşturabilirsiniz.

Önerilen Araçlar

  • Monitoring: Prometheus, Grafana, AlertManager
  • Security: Falco, OPA Gatekeeper
  • Backup: Velero, Kasten
  • CI/CD: ArgoCD, Flux

Bu Yazıyı Paylaş: