İçeriğe atla
Wide cinematic visualization of Kubernetes cluster management at scale
İçgörülere Dön
Bulut·12 dk okuma

Büyük Ölçekte Kubernetes: Üretim Dağıtımlarından Dersler

Yazar Osman Kuzucu·Yayınlanma tarihi 2025-02-10

Kubernetes, konteyner orkestrasyonu için varsayılan platform haline geldi, ancak onu üretimde iyi çalıştırmak, bir kümeyi ayağa kaldırmaktan temelden farklı bir zorluktur. Çalışan bir demo ile üretim düzeyinde bir dağıtım arasındaki boşluk, çoğu ekibin acı verici ve maliyetli derslerle karşılaştığı yerdir. Birden fazla sektör ve ölçek profilinde Kubernetes kümelerini yönettikten sonra, belirli kalıplar tutarlı bir şekilde ortaya çıkıyor. Bunlar teorik en iyi uygulamalar değil — olay sonrası analizlerinden, performans ayarlama oturumlarından ve gizemli pod tahliyelerinin gece geç saatlerde hata ayıklamasından öğrenilmiş operasyonel derslerdir.

Kaynak İstekleri ve Limitleri: Doğru Ayarlayın veya Bedelini Ödeyin

Karşılaştığımız en yaygın üretim sorunu, yanlış yapılandırılmış kaynak istekleri ve limitleridir. CPU istekleri çok düşük ayarlandığında, zamanlayıcı bir düğüme çok fazla pod paketler ve bu da gizemli gecikme artışları olarak ortaya çıkan CPU kısıtlamasına yol açar. Bellek limitleri çok yüksek ayarlandığında, pahalı bilgi işlem kaynağını israf edersiniz. Hiç yoksa, tek bir kontrol dışı pod komşularını OOM-kill edebilir. Doğru yaklaşım profilleme ile başlamaktır: iş yüklerinizi gerçekçi yük altında çalıştırın, gerçek CPU ve bellek tüketimini gözlemleyin, ardından istekleri P95 kullanımına ve limitleri bu değerin 1,5-2 katına ayarlayın.

Pod Kesinti Bütçeleri ve Sorunsuz Dağıtımlar

Pod Kesinti Bütçeleri (PDB'ler), en çok göz ardı edilen Kubernetes kaynaklarından biridir, ancak düğüm boşaltma, küme yükseltme ve spot örnek geri alma sırasında kullanılabilirliği korumak için kritik öneme sahiptir. Bir PDB, gönüllü kesintiler sırasında kullanılabilir kalması gereken minimum pod sayısını belirtir. PDB'ler olmadan, bir düğümü boşaltan küme otomatik ölçekleyicisi veya kademeli güncelleme, bir hizmetin tüm kopyalarını aynı anda devre dışı bırakabilir. Birden fazla kopyası olan her üretim Deployment'ının maxUnavailable 1 olarak ayarlanmış bir PDB'ye sahip olmasını öneriyoruz.

Yatay Pod Otomatik Ölçekleme: CPU Metriklerinin Ötesinde

Yalnızca CPU kullanımına dayalı varsayılan HPA yapılandırmaları bir başlangıç noktasıdır, çözüm değildir. CPU tabanlı ölçekleme, ani iş yükleri için genellikle çok yavaş tepki verir. Üretim düzeyinde otomatik ölçekleme özel metrikler gerektirir. HTTP hizmetleri için Prometheus adaptörü aracılığıyla istek oranına veya istek gecikme yüzdelerine göre ölçeklendirin. Kuyruk tüketicileri için kuyruk derinliğine göre ölçeklendirin. Çırpınmayı önlemek için stabilizasyon pencereleri ayarlayın — 3 dakikalık bir küçültme gecikmesi yaygın salınım döngüsünü önler. Ayrıca sıfıra ölçeklenme veya Kafka konu gecikmesi gibi harici olay kaynaklarına göre ölçeklenme gereken iş yükleri için KEDA'yı düşünün.

Gözlemlenebilirlik: Tartışılmaz Temel

Bir üretim Kubernetes dağıtımı, üç sütun üzerine inşa edilmiş kapsamlı bir observability altyapısı gerektirir:

  • Metrikler — Küme sağlığı, kaynak kullanımı, uygulama düzeyi SLI'ları ve uyarılar için Grafana panolarıyla Prometheus. Pahalı sorguları önceden hesaplamak ve pano yükleme sürelerini hızlı tutmak için kayıt kurallarını kullanın.
  • Günlükler — Loki, Elasticsearch veya yönetilen bir hizmetle merkezi günlük kaydı. Tüm hizmetlerden yapılandırılmış JSON günlük kaydı sağlayın, her günlük satırına izleme kimliklerini dahil edin.
  • İzler — OpenTelemetry, Jaeger veya Tempo ile dağıtık izleme. Mikroservis ortamında izler, hizmet sınırları arasındaki istek akışını anlamanın ve gecikmenin nerede oluştuğunu belirlemenin tek yoludur.

Kubernetes'i üretimde çalıştırmak bir yolculuktur, bir hedef değildir. Platform hızla gelişiyor ve 10 düğümde çalışan kalıplar 100'de bozulabilir. Birlikte çalıştığımız en başarılı ekipler, Kubernetes platformlarına bir ürün gibi davranır — özel sahiplik, net SLO'lar, düzenli incelemeler ve sürekli yatırımla. OKINT Digital olarak, mühendislik ekipleriyle dayanıklı, gözlemlenebilir ve maliyet verimli üretim Kubernetes ortamları tasarlamak, dağıtmak ve işletmek için ortaklık yapıyoruz.

kubernetescontainer orchestrationdevopscloud infrastructure

Bu konuları derinlemesine tartışmak ister misiniz?

Mühendislik ekibimiz mimari incelemeler, teknik değerlendirmeler ve strateji oturumları için müsait.

Görüşme planlayın