Vebende Akademi - kubernetes-production-best-practices
Uzmanla Konuşun
Blog
MAKALE

Kubernetes Üretim (Production) En İyi Uygulamaları — Güvenlik, Operasyon, Ölçek ve Gözlemlenebilirlik

Yayınlayan: Vebende Akademi  |  Okuma süresi: ~60–120 dk

Kubernetes Üretim (Production) En İyi Uygulamaları — Güvenlik, Operasyon, Ölçek ve Gözlemlenebilirlik

Yayınlayan: Vebende Akademi  |  Okuma süresi: ~60–120 dk

1. GİRİŞ

Kubernetes günümüzde konteyner‑tabanlı uygulamaları üretim ortamında çalıştırmak için yaygın bir tercih. Ancak "Kubernetes çalıştırmak" ile "Kubernetes’i üretimde güvenle ve sürdürülebilir şekilde işletmek" arasındaki fark büyüktür. Production ortamı; güvenlik, performans, ölçeklenebilirlik, yedekleme, izlenebilirlik ve operasyonel olgunluk gerektirir. Bu makale, üretim ortamlarında karşılaşılan kritik sorunlara mühendis perspektifiyle pratik, uygulanabilir çözümler sunar.

Bu konu neden konuşuluyor?

  • Konteynerleşme, mikroservis ve bulut‑native mimarilerin yaygınlaşmasıyla üretim karmaşıklığı arttı.
  • Operasyonel hatalar ve yanlış yapılandırmalar ciddi güvenlik veya hizmet kesintilerine yol açabiliyor.
  • Şirketler maliyet, performans ve uyumluluk hedeflerini aynı anda yönetmek zorunda.

Kimler için önemli?

  • Platform mühendisleri ve SRE ekipleri
  • DevOps ve altyapı ekipleri
  • Uygulama geliştiriciler — production‑grade deployment konfigürasyonlarını anlamak için

Hangi problemleri çözüyor?

  • Kesintileri azaltma ve hızlı recovery
  • Güvenlik açıklarını kapatma ve ilke tabanlı yönetim
  • Ölçek ve maliyet dengesini sağlama

2. KAVRAMSAL TEMELLER

2.1 Temel kavramlar ve terminoloji

  • Control plane: API server, controller manager, scheduler ve etcd gibi yönetim bileşenleri.
  • Worker nodes: Pod'ların çalıştığı node'lar; kubelet, container runtime, kube‑proxy içerir.
  • etcd: Cluster'ın source‑of‑truth'u; güvenlik ve yedekleme kritik.
  • Namespaces: Çoklu takım/tenant izolasyonu için temel birim.
  • RBAC: Erişim kontrolü; least‑privilege prensibi uygulanmalı.

2.2 Üretim mimarisi bileşenleri

  • Kontrol düzlemi (managed veya self‑managed)
  • Node havuzları (node pools) — on‑demand, spot, GPU vs.
  • CI/CD pipeline ve artifact registry
  • Observability stack: metrics, logs, tracing
  • Backup & DR: etcd ve uygulama verileri için snapshot, cross‑region replikasyon

3. NASIL ÇALIŞIR? — TEKNİK MİMARİ VE UYGULAMA DESENLERİ

3.1 Control plane tasarımı

Control plane'in güvenliği ve erişilebilirliği üretim için kritik. Managed Kubernetes (EKS/GKE/AKS) kullanıyorsanız kontrol düzlemi sağlayıcı tarafından yönetilir; self‑managed ise HA, TLS, audit ve etcd yedekleme stratejilerini siz tasarlarsınız. Control plane için en iyi uygulamalar:

  • etcd'yı ayrı güvenli network ve sürümlü snapshot ile yönetmek; encryption‑at‑rest kuralı uygulamak.
  • API server erişimini IP allowlist, bastion veya private endpoint ile sınırlandırmak.
  • Audit logging aktif ve merkezi bir SIEM'e yönlendirilmiş olmalı.

3.2 Multi‑zone ve multi‑region stratejileri

Yüksek erişilebilirlik için farklı availability zone'larda node ve control plane replikasyonu tavsiye edilir. Cross‑region replication daha çok disaster recovery amaçlıdır; latency ve veri tutarlılığı trade‑off'ları değerlendirilmelidir.

3.3 Network ve servis mimarisi

Network design production'da kritik: CNI seçimi (Cilium, Calico), NetworkPolicy'ler, service mesh (Istio/Linkerd) ve ingress/egress kontrolü. Öneriler:

  • Default deny NetworkPolicy ile başlayın; yalnızca gerekli trafik izinlerini açın.
  • Service mesh kullanıyorsanız mTLS, telemetry ve circuit breaker konfigürasyonlarını uygulayın ama complexity maliyetini değerlendirin.
  • L7 terminasyonu ve WAF entegrasyonları ile uygulama güvenliğini güçlendirin.

3.4 CI/CD ve GitOps

Güvenilir deployment için CI/CD pipeline'ları otomatikleştirilmeli; GitOps (ArgoCD/Flux) üretim kontrolünü kod üzerinden sağlar. En iyi uygulamalar:

  • Immutable artifacts: image tag yerine digest (SHA) kullanın.
  • Pipeline içinde image scanning (vuln scan), SBOM üretimi ve image signing (Cosign) yapın.
  • Canary / blue‑green deploy, rollout stratejileri ve otomatik rollback kurun.

3.5 Storage ve veri yönetimi

Stateful uygulamalar için PV/PVC, StorageClass ve snapshot stratejileri tasarlanmalı. Yedekleme ve restore testleri düzenli yapılmalıdır. Öneriler:

  • Critical data için cross‑AZ/region replikasyon ve harici backup planı uygulayın.
  • Snapshot'ları düzenli test edin — sadece almak değil restore etmek de doğrulanmalı.
  • Storage sınıflarını performans, maliyet ve dayanıklılık ekseninde yönetin (gold/silver/bronze).

4. GÜVENLİK (SECURITY) EN İYİ UYGULAMALARI

4.1 Kimlik ve erişim yönetimi

  • OIDC ile merkezi IdP (Azure AD, Google, Keycloak) entegrasyonu.
  • RBAC politikalarını least‑privilege prensibiyle tasarlayın; default service account kullanımını engelleyin.
  • ServiceAccount token'larını kısa ömürlü yapacak otomasyon ve akses yönetimleri kurun.

4.2 Pod güvenliği ve runtime

  • PodSecurity admission, OPA/Gatekeeper veya Kyverno ile policy enforcement.
  • seccomp, AppArmor profilleri ve read‑only root filesystem kullanın.
  • Privileged container, hostPath, hostNetwork gibi tehlikeli özellikleri yasaklayın.

4.3 Secret yönetimi

  • Kubernetes Secrets base64 değil; KMS backed (Vault, AWS/ Azure Key Vault) store kullanın.
  • Secrets erişimini RBAC ile sıkılaştırın; audit kayıtlarını saklayın.

4.4 Supply‑chain güvenliği

  • CI'de image scanning, SBOM, imzalama ve provenance doğrulama uygulayın.
  • Admission controller ile yalnızca doğrulanmış/imzalanmış image'ların çalışmasına izin verin.

5. GÖZLEMLENEBİLİRLİK (OBSERVABILITY) VE MONITORING

5.1 Metrikler, log ve tracing

Production ortamı için metrics (Prometheus), logs (FluentBit/Elasticsearch veya Loki) ve traces (OpenTelemetry + Jaeger/Tempo) entegre edilmelidir. Önemli noktalar:

  • SLI/SLO belirleyin ve alert'leri bunlara bağlayın — business‑aligned monitoring.
  • Trace context propagation (trace id/request id) ile logs ve traces korelasyonu sağlayın.
  • High‑cardinality etiket kullanımını sınırlayın; maliyet ve sorgu performansını yönetin.

5.2 Alerting ve incident management

  • Alert'leri önceliklendirip, runbook'lara bağlayın; alert fatigue'ı azaltın.
  • On‑call rotaları, eskalasyon politikaları ve postmortem süreçleri belirli olsun.

5.3 Auto‑remediation ve playbook'lar

Gözlemlenebilirlik sadece uyarı üretmek değil; otomatik çözümler tetiklemek için de kullanılmalı. Örneğin sağlık kontrolleri belirli threshold'a ulaşınca otomatik restart veya scaling yapacak playbook'lar oluşturun.

6. OTOMASYON, CI/CD VE GITOPS

6.1 Pipeline güvenliği

  • CI pipeline'larında least‑privilege, ephemeral credential ve secret scanning kullanın.
  • DevSecOps: vulnerability scan, license check, SBOM ve image signing otomatik hale getirilsin.

6.2 GitOps yaklaşımı

ArgoCD/Flux gibi GitOps araçları ile manifest'leri git'te kaynak tek doğru kaynağı (single source of truth) haline getirin. Rollback, drift detection ve PR tabanlı değişiklik yönetimi sağlanır.

6.3 Progressive delivery

Canary, blue‑green veya feature flag temelli rollout'lar riskleri azaltır. Canary metric analysis ve automated promotion kriterleri tanımlayın.

7. PERFORMANS VE ÖLÇEKLENEBİLİRLİK

7.1 Autoscaling stratejileri

  • HPA için doğru metrikleri (latency, queue length) kullanın; yalnızca CPU'ya bağlı scaling genelde yetersizdir.
  • VPA ile resource requests'inizi optimize edin; production'da önce recommendation modunda test edin.
  • Cluster Autoscaler ve node pool'larla provisioning latency'yi yönetin (pre‑warmed pools).

7.2 Performans testleri ve SLO'lar

Load test, soak test ve chaos engineering ile sistem davranışını öğrenin. Elde edilen veriler SLO belirlemede kullanılmalı.

8. BACKUP, DR VE RECOVERY

8.1 etcd yedekleme

  • etcd snapshot'larını düzenli alın ve farklı lokasyonlarda saklayın.
  • Encryption at rest ve erişim kısıtlamalarını uygulayın; restore prosedürlerini sık test edin.

8.2 Uygulama veri yedekleme

  • Veritabanları için logical/physical backup yöntemleri; snapshot + WAL replay stratejileri.
  • Snapshot restore testlerini otomatikleştirip runbook'ları güncel tutun.

9. SIK YAPILAN HATALAR

  • etcd yedeklemesi veya encryption olmadan prod'a geçmek.
  • Default izinlerle çalışma — default service account ve geniş RBAC izinleri.
  • CI/CD pipeline'da image scanning ve signing olmadan release yapmak.
  • Observability eksikliği — doğru SLI/SLO tanımlanmamış ve alert'ler anlamsız.

10. GELECEK TRENDLER

  1. Policy as code ve otomatik governance: Rego/OPA, Kyverno ile politika yaşam döngüleri otomatikleşecek.
  2. eBPF tabanlı gözlemlenebilirlik: Kernel düzeyinde daha zengin veri ve düşük overhead ile debug hızlanacak.
  3. AI destekli operasyon: Anomali tespiti, RCA önerileri ve otomatik remediation için ML modelleri yaygınlaşacak.
  4. Operator ve controller olgunluğu: Operatörler daha fazla uygulama operational bilgisini kodlayacak ve platformu basitleştirecek.

EK BÖLÜMLER

Sık Sorulan Sorular (FAQ)

  1. 1. Production için managed Kubernetes mi yoksa self‑managed mi tercih etmeliyim?

    Managed hizmetler (EKS/GKE/AKS) kontrol düzlemi yönetimini üstlenir ve operational overhead'ı azaltır; ancak bazı özel gereksinimler için self‑managed tercih edilebilir. Riskler ve maliyetleri karşılaştırarak karar verin.

  2. 2. etсd yedeğini ne sıklıkla almalıyım?

    Critical production cluster'lar için günlük snapshot temelini başlatın; değişim yoğunluğuna göre saatlik snapshot ve WAL arşivleme gerekebilir. Önemli olan restore prosedürünü test etmektir.

  3. 3. Canary mı yoksa blue‑green mı kullanmalıyım?

    Her ikisinin avantajı var: Canary daha küçük riskle ilerler ve metric‑based promotion sağlar; blue‑green anında rollback kolaylığı sunar. Yapınıza göre seçin veya karışık strateji uygulayın.

  4. 4. Secrets için en iyi uygulama nedir?

    KMS‑backed secret store (Vault, AWS KMS, Azure Key Vault) kullanın; Secrets doğrudan etcd içinde plaintext olmamalı ve erişim RBAC ile sınırlanmalıdır.

  5. 5. Hatalı RBAC politikalarını nasıl tespit ederim?

    Audit log analizleri, access reviews ve least‑privilege testleriyle gereksiz izinleri belirleyin. Periodic manual review ve otomatik policy scan'leri uygulayın.

  6. 6. Observability maliyetlerini nasıl yöneteceğim?

    Cardinality kontrolü, sampling, retention planı ve cold storage stratejileri ile maliyeti optimize edin. Ayrıca hangi telemetry'nin kritik olduğunu iş birimleriyle belirleyin.

  7. 7. Uygulama yaşam döngüsünü otomatikleştirirken hangi risklere dikkat etmeliyim?

    Otomasyon hataları geniş çaplı etkiler yaratabilir. Canary ve staging testleri, rollback planları ve erişim kontrolleri olmadan otomasyon açmayın.

  8. 8. Production'a geçmeden önce hangi testleri yapmalıyım?

    Unit, integration, e2e testleri, load/soak testleri, security scan, recovery/restore testleri ve canary testi gibi kapsamlı test setleri uygulayın.

Anahtar Kavramlar

Control plane
Cluster yönetim bileşenleri: API server, controller manager, scheduler ve etcd.
RBAC
Erişim kontrolü mekanizması; least‑privilege ilkesiyle kullanılmalı.
GitOps
Manifest yönetimini git ile tek kaynak yapıp otomatik deploy sağlayan yaklaşım.
SLI / SLO
Servis kalitesini ölçen göstergeler ve hedefler; monitoring yapısını bu hedeflerle hizalayın.
PodSecurity
Pod seviyesinde güvenlik ilke ve admission controller'ları.

Öğrenme Yol Haritası

  1. 0–1 ay: Kubernetes temel kavramları, namespaces, RBAC, PV/PVC, Deployment ve StatefulSet öğrenin.
  2. 1–3 ay: CI/CD, GitOps, Prometheus/Grafana temel monitoring, basit backup/restore senaryoları ile pratiğe başlayın.
  3. 3–6 ay: Security hardening (PodSecurity, OPA), autoscaling stratejileri ve production‑grade observability kurun.
  4. 6–12 ay: HA control plane tasarımı, multi‑region DR, chaos engineering, FinOps ve operatör geliştirme üzerinde çalışın.