Kubernetes Nedir?

İngilizce: Kubernetes

Kubernetes, konteynerle çalışan servisleri çoklu sunucu üzerinde dağıtma, ölçekleme, güncelleme ve iyileştirme için yönetir.

Kubernetes Nedir?

Kubernetes, konteynerle çalışan uygulamaları birden fazla sunucu üzerinde planlayan, izleyen ve gerektiğinde yeniden başlatan orkestrasyon platformudur. Amaç yalnızca konteyner çalıştırmak değil; servislerin ayakta kalmasını, doğru yere yönlenmesini ve kontrollü biçimde güncellenmesini sağlamaktır.

Docker bir konteyneri paketleyip çalıştırmaya odaklanırken, Kubernetes çok sayıda konteynerin birlikte yönetilmesini sağlar. Bu yüzden genellikle büyüyen servis sayısı, trafik dalgalanmaları veya yüksek erişilebilirlik ihtiyacı olan sistemlerde anlamlı hale gelir.

Temel Bileşenler

  • Pod: Kubernetes’te dağıtılan en küçük çalışma birimidir; çoğu zaman bir uygulama konteynerini temsil eder.
  • Deployment: Kaç kopya çalışacağını, güncelleme stratejisini ve geri dönüş davranışını tanımlar.
  • Service: Pod’ların değişen IP adreslerini sabit bir ağ adresi arkasında toplar.
  • Ingress: Dış dünyadan gelen HTTP trafiğini doğru servise yönlendirir.
  • ConfigMap ve Secret: Ayarları ve hassas bilgileri uygulama imajından ayrı yönetir.

İş Dünyasında Kubernetes Kullanımı

Kubernetes; SaaS ürünleri, mikro hizmet mimarileri, yüksek trafikli API’ler ve kurumsal iç sistemlerde ölçekleme, otomatik iyileştirme ve sıfıra yakın kesintiyle dağıtım için kullanılır. Örneğin ödeme, stok ve bildirim servisleri ayrı ayrı ölçeklenebilir; yalnızca yoğunlaşan servis için ek kaynak ayrılır.

Kubernetes her proje için ilk seçenek değildir. Küçük bir kurumsal site veya tek servisli uygulama için operasyon maliyeti gereksiz olabilir. Buna karşılık Docker ile paketlenen çok servisli bir sistem, microservice sınırları netleştiğinde Kubernetes üzerinde daha yönetilebilir hale gelir.

Barlas Dijital’de Kubernetes kararı genellikle beklenen trafik, ekip kapasitesi, gözlemlenebilirlik ihtiyacı ve bulut maliyeti birlikte değerlendirilerek verilir.

Otomatik Ölçekleme

Otomatik ölçekleme, CPU, bellek, kuyruk veya trafik eşiklerine göre kaynak sayısını kendiliğinden artırıp azaltır.

Blue-Green Deployment

Blue-green deployment, aynı uygulamanın iki üretim ortamı arasında trafik yönlendirerek kesintisiz ve hızlı geri alınabilir yayın yapma tekniğidir.

Kaos Mühendisliği

Kaos mühendisliği, kontrollü arızalar oluşturarak sistemlerin gerçek kesintilere ne kadar dayanıklı olduğunu ölçme pratiğidir.

Container Registry

Container registry, Docker/OCI imajlarını etiketleriyle saklayan, CI/CD ve Kubernetes dağıtımlarına güvenli kaynak sağlayan depodur.

Bulut Maliyet Optimizasyonu

Bulut maliyet optimizasyonu, performansı koruyarak boşa çalışan kaynak, yanlış ölçek ve pahalı satın alma modelini düzeltme sürecidir.

Docker Compose

Docker Compose, birden fazla konteyneri tek YAML dosyasıyla tanımlayıp yerel geliştirme veya test ortamında birlikte çalıştırmayı sağlar.

Docker

Docker, uygulama kodunu ve bağımlılıklarını konteyner imajlarında paketleyerek geliştirme, test ve üretimde aynı şekilde çalıştırır.

Helm

Helm, Kubernetes manifestlerini chart adı verilen paketlerle şablonlayıp sürümleyerek dağıtmayı sağlayan araçtır.

Kubernetes Pod

Pod, Kubernetes'teki en küçük dağıtım birimidir; bir veya daha fazla konteyneri ve paylaşılan ağ/depolama kaynaklarını içerir.

Microservice

Mikro hizmet mimarisi, büyük uygulamayı bağımsız geliştirilen, dağıtılan ve ölçeklenen küçük servisler halinde tasarlar.