Kubernetes'e Geçiş: Bilmeniz Gereken 7 Şey
Tüm yazılarBulut & DevOps

Kubernetes'e Geçiş: Bilmeniz Gereken 7 Şey

Onur Yılmaz· Kıdemli Takım Lideri28 Mart 20263 dk okuma

Kubernetes'e geçiş, çoğu zaman düşünülenden daha karmaşık. Zor olan K8s'in kendisi değil; etrafında verilmesi gereken onlarca mimari karar. Son 3 yılda 9 farklı şirketi K8s'e taşıdık — fintech'ten e-ticarete, 10 mikroservislik yapılardan 100'ün üzerindekilere. İşte her projede tekrar eden 7 ders.

1. Stateful İş Yüklerini Erken Düşünün

Database'ler, queue'lar, file storage — bunları K8s içinde mi yoksa managed servislerde mi tutacağınızı projenin başında karar verin. Bizim varsayılan tavsiyemiz net: stateless servisleri taşıyın, veritabanını managed serviste (RDS, Cloud SQL) bırakın. K8s operatörleri olgunlaşıyor ama 7/24 veritabanı operasyonu ayrı bir uzmanlık; migration'ın ortasında öğrenilecek bir şey değil.

2. Observability Önce, Migration Sonra

Prometheus, Grafana ve distributed tracing kurulmadan migration başlatmayın. Sebep basit: eski ortamın baseline metrikleri elinizde yoksa, taşıma sonrası "sistem yavaşladı mı?" sorusuna veriyle cevap veremezsiniz ve her tartışma hisse dayanır. Önce ölçün, sonra taşıyın, sonra karşılaştırın.

3. CI/CD Yeniden Yazılır

Eski deployment script'leriniz büyük ihtimalle çöpe gidecek; bunu kabul edin ve baştan zaman ayırın. Deneyimimizde CI/CD'nin yeniden kurulması, toplam migration eforunun yaklaşık üçte birini alıyor. Helm mi Kustomize mi kararını erken verin ve GitOps'u (örneğin Argo CD) birinci günden kurun — cluster'a elle dokunulmasını baştan engellerseniz, config drift diye bir sorununuz hiç olmaz.

4. Maliyet Sürprizleri

Egress traffic, persistent volume'lar, control plane ücretleri, boşta bekleyen node'lar — TCO'yu migration'dan önce modelleyin. Acı gerçek şu: cluster autoscaler ve doğru ayarlanmış resource request/limit değerleri olmadan, K8s eski VM kurulumunuzdan daha pahalıya gelebilir. Maliyet görünürlüğü için namespace bazlı etiketleme ve bir maliyet aracını (Kubecost vb.) ilk haftadan ekleyin.

5. Network Policy

Default deny + explicit allow. Gördüğümüz cluster'ların çoğu düz bir ağla canlıya çıkıyor: herhangi bir pod ele geçirildiğinde tüm servislere erişebiliyor. Namespace bazlı izolasyonu ve servisler arası açık izin listelerini ilk günden kurun; canlıya çıktıktan sonra sıkılaştırmak, her seferinde bir şeyleri kırma riskini taşır.

6. Image Boyutları

Multi-stage Docker build'lerle image boyutlarını %70'in üzerinde küçültebilirsiniz; base olarak distroless veya alpine düşünün. Bu bir estetik tercih değil: küçük image, hızlı pod başlatma demek — yani autoscaling gerçekten işe yaradığında (trafik patlamasında) saniyeler kazanırsınız. Bonus: daha küçük saldırı yüzeyi ve daha hızlı güvenlik taramaları.

7. Disaster Recovery

Velero ile cluster yedekleri ve çoklu-region stratejisi. Ama asıl test şu soru: "Bu cluster'ı sıfırdan kaç saatte ayağa kaldırabiliyoruz?" Cevabı tatbikatla doğrulanmamış her DR planı, kağıt üzerinde kalmış demektir. Cluster'ınız Terraform gibi IaC ile tarif edilmemişse bu süre günlerle ölçülür. DR planınız migration tamamlanmadan hazır ve test edilmiş olmalı.

Sonuç

Kubernetes hedef değil, araç. Doğru planlanırsa ölçeklenme ve taşınabilirlik kazandırır; plansız girilirse pahalı bir karmaşıklık katmanı olur. Migration yol haritanızı çizerken bu 7 maddeyi bir ön kontrol listesi olarak kullanın — ya da bu yoldan 9 kez geçmiş Avva Mobile ekibiyle bir keşif görüşmesi yapın.

Sizi Dinliyoruz

Size nasıl yardımcı olabiliriz? Lütfen aklınızdakileri bizimle paylaşın.

    Kubernetes'e Geçiş: Bilmeniz Gereken 7 Şey | Avva Mobile