X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Worldwide (English)Worldwide (English)
X
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Worldwide (English)Worldwide (English)
X

Kubernetes Nedir? Nasıl Kullanılır?

Kubernetes Nedir? Nasıl Kullanılır? Konteyner Orkestrasyonunun Lideri

Günümüzün hızla dijitalleşen dünyasında, uygulamaların geliştirilmesi, dağıtı...

Kubernetes Nedir? Nasıl Kullanılır?

Kubernetes Nedir? Nasıl Kullanılır? Konteyner Orkestrasyonunun Lideri

Kubernetes Nedir

Günümüzün hızla dijitalleşen dünyasında, uygulamaların geliştirilmesi, dağıtılması ve yönetilmesi süreçleri de köklü değişimler geçirdi. Bu değişimin merkezinde konteyner teknolojisi ve bu konteynerleri büyük ölçekte yönetme ihtiyacı yatıyor. İşte tam bu noktada Kubernetes (K8s) devreye giriyor. Peki, sıkça duyduğumuz Kubernetes nedir ve modern bilişim altyapılarında nasıl kullanılır?

Kubernetes Nedir?

Kubernetes, kısaca K8s (K ve s harfleri arasında 8 harf olduğu için), Google tarafından geliştirilen ve daha sonra Cloud Native Computing Foundation (CNCF) tarafından yönetilmeye başlanan, açık kaynaklı bir konteyner orkestrasyon platformudur. Temel amacı, konteynerleştirilmiş uygulamaların dağıtımını (deployment), ölçeklendirilmesini (scaling) ve yönetimini (management) otomatikleştirmektir.

Konteynerler (en popüler örneği Docker), uygulamaları ve bağımlılıklarını izole edilmiş ortamlarda paketlemeyi sağlar. Bu, "benim makinemde çalışıyordu" sorununu ortadan kaldırır ve tutarlı ortamlar sunar. Ancak yüzlerce, hatta binlerce konteynerden oluşan karmaşık mikroservis mimarilerini veya dağıtık sistemleri yönetmek manuel olarak imkansıza yakındır. Kubernetes, tam da bu karmaşıklığı yönetmek için tasarlanmıştır. Uygulamalarınızın istenen durumda (desired state) çalışmasını sağlar, kaynakları verimli kullanır ve altyapı yönetimini büyük ölçüde basitleştirir.

Neden Kubernetes Kullanmalıyız? Temel Avantajları

Kubernetes'in popülerliğinin arkasında yatan pek çok neden ve sunduğu önemli avantajlar bulunmaktadır:

  1. Otomatik Ölçeklendirme (Auto-scaling): Uygulama yüküne göre konteyner sayısını otomatik olarak artırıp azaltabilir.
  2. Yüksek Erişilebilirlik ve Kendi Kendini İyileştirme (High Availability & Self-healing): Başarısız olan konteynerleri otomatik olarak yeniden başlatır, sağlıksız node'lardaki (düğüm) konteynerleri sağlıklı node'lara taşır.
  3. Servis Keşfi ve Yük Dengeleme (Service Discovery & Load Balancing): Konteyner gruplarına (Pod'lara) tek bir DNS adı veya IP adresi üzerinden erişim sağlar ve gelen trafiği bu konteynerler arasında dağıtır.
  4. Otomatik Dağıtım ve Geri Alma (Automated Rollouts & Rollbacks): Uygulama güncellemelerini kesintisiz (zero-downtime) bir şekilde yapabilir ve sorun olması durumunda önceki kararlı sürüme kolayca dönebilir.
  5. Depolama Orkestrasyonu (Storage Orchestration): Yerel diskler, bulut depolama çözümleri (AWS EBS, Azure Disk, GCP Persistent Disk vb.) gibi farklı depolama sistemlerini yönetebilir.
  6. Gizli Bilgi ve Yapılandırma Yönetimi (Secrets & Configuration Management): Hassas bilgileri (şifreler, API anahtarları) ve uygulama yapılandırmalarını konteyner imajlarından ayrı olarak yönetmeyi sağlar.
  7. Taşınabilirlik (Portability): Farklı bulut sağlayıcıları (AWS, Azure, GCP) veya şirket içi (on-premise) veri merkezleri arasında tutarlı bir şekilde çalışabilir (Hibrit ve Multi-Cloud).

Kubernetes Temel Kavramları

Kubernetes Temel Kavramlar

Kubernetes'in nasıl çalıştığını anlamak için bazı temel bileşenleri bilmek önemlidir:

  • Pod: Kubernetes'teki en küçük dağıtılabilir birimdir. Bir veya daha fazla konteyneri (genellikle Docker), depolama kaynaklarını ve ağ IP adresini içerir. Aynı Pod içindeki konteynerler kaynakları ve ağı paylaşır.
  • Node (Düğüm): Kubernetes kümesindeki bir işçi makinedir (fiziksel veya sanal). Pod'ların çalıştığı yerdir.
  • Cluster (Küme): Bir Kontrol Düzlemi (Control Plane) tarafından yönetilen bir dizi Node'dan oluşur.
  • Control Plane (Kontrol Düzlemi): Kümenin beynidir. API Sunucusu, etcd (küme durumunu saklayan veritabanı), Zamanlayıcı (Scheduler) ve Kontrol Yöneticileri (Controller Managers) gibi bileşenleri içerir. Kümenin genel durumunu yönetir ve Node'ları koordine eder.
  • Deployment: Uygulamanın istenen durumunu tanımlar. Belirli sayıda Pod replikasının çalışmasını sağlar ve güncellemeleri yönetir.
  • Service: Bir grup Pod'a (genellikle bir Deployment tarafından yönetilen) erişmek için sabit bir ağ arabirimi (IP adresi/DNS adı) sağlar. Pod'lar geçici olsa bile Service kalıcıdır.
  • Namespace: Tek bir fiziksel küme içinde birden fazla sanal küme oluşturmak için kullanılır. Kaynakları (Pod'lar, Service'ler vb.) izole etmeye yarar.

Kubernetes Nasıl Kullanılır?

Kubernetes kullanmanın temel adımları şunlardır:

  1. Küme Kurulumu: Şirket içi sunuculara manuel olarak kurulabilir veya yönetilen Kubernetes servisleri (Managed Kubernetes Services) kullanılabilir. Popüler yönetilen servisler arasında Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS) ve Azure Kubernetes Service (AKS) bulunur. Bu servisler, Kontrol Düzlemi yönetimini bulut sağlayıcısına bırakarak işleri kolaylaştırır.
  2. Uygulamayı Konteynerleştirme: Uygulamanızı ve bağımlılıklarını bir Dockerfile kullanarak bir konteyner imajına dönüştürmeniz gerekir.
  3. Manifest Dosyaları Oluşturma: Kubernetes'e ne yapmak istediğinizi (örneğin, hangi imajı kullanarak kaç Pod çalıştırılacağı, hangi Service'in oluşturulacağı) YAML veya JSON formatındaki manifest dosyalarıyla deklaratif (declarative) olarak tanımlarsınız.
  4. kubectl Kullanımı: kubectl, Kubernetes kümesiyle etkileşim kurmak için kullanılan ana komut satırı aracıdır. Manifest dosyalarını küme üzerine uygulamak (kubectl apply -f dosya.yaml), kümedeki kaynakları listelemek (kubectl get pods, kubectl get services), logları incelemek (kubectl logs ) gibi işlemler için kullanılır.
  5. CI/CD Entegrasyonu: Kubernetes genellikle Jenkins, GitLab CI, GitHub Actions gibi CI/CD (Sürekli Entegrasyon/Sürekli Dağıtım) araçlarıyla entegre edilir. Bu sayede kod değişiklikleri otomatik olarak test edilir, konteyner imajları oluşturulur ve Kubernetes üzerinde güncellenir.

Kullanım Alanları

Kubernetes Kullanım Alanları

Kubernetes, geniş bir yelpazede kullanılır:

  • Mikroservis mimarileri: Karmaşık uygulamaları bağımsız, ölçeklenebilir servislere ayırmak ve yönetmek için idealdir.
  • Web uygulamaları ve API'ler: Yüksek trafikli web sitelerini ve API'leri kolayca ölçeklendirmek için kullanılır.
  • Büyük Veri işleme: Spark gibi büyük veri işleme framework'lerini çalıştırmak için kullanılır.
  • Makine Öğrenmesi (ML): ML modellerinin eğitimi ve sunulması için gereken altyapıyı sağlar (örneğin, Kubeflow).
  • DevOps ve Otomasyon: Yazılım geliştirme ve operasyon süreçlerini otomatikleştirmek için temel bir araçtır.

Kubernetes (K8s), konteynerleştirilmiş uygulamaların karmaşıklığını yönetmek için endüstri standardı haline gelmiş güçlü bir konteyner orkestrasyon platformudur. Sunduğu otomasyon, ölçeklendirme, yüksek erişilebilirlik ve taşınabilirlik gibi avantajlarla modern DevOps pratiklerinin ve bulut bilişim stratejilerinin ayrılmaz bir parçasıdır. Kubernetes'i anlamak ve nasıl kullanılacağını öğrenmek, günümüzün teknoloji dünyasında rekabet avantajı sağlamak için kritik öneme sahiptir.

not found