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