Kubernetes

Kubernetes Nedir? Nasıl Çalışır ve Ne İşe Yarar?

Kubernetes istenen durum kontrol döngüsü
Kubernetes istenen durum kontrol döngüsüKubernetes istenen durum kontrol döngüsü: Kullanıcı / CI-CD → API Server → Control Plane → Worker Node → Pod + Service. Tanım gönderilir, gerçek durum gözlenir, fark düzeltilir.geri besleme01Kullanıcı /CI-CD02API Server03Control Planekilit adım04Worker Node05Pod + Service

Tanım gönderilir, gerçek durum gözlenir, fark düzeltilir.

Kubernetes ne işe yarar?

Bir e-ticaret API'sinin üç kopya halinde çalışması gerektiğini düşünün. Kubernetes'e bu istenen durumu bir Deployment ile bildirirsiniz. Bir pod yanıt vermeyi bırakırsa Kubernetes onu değiştirir. Trafik arttığında replica sayısı yükseltilebilir; yeni pod'lar uygun worker node'lara yerleştirilir ve Service trafiği sağlıklı pod'lara dağıtır.

Bu kontrol döngüsü dağıtım, yatay ölçekleme, servis keşfi ve kendi kendini iyileştirme gibi operasyonları ortak bir model altında toplar. ConfigMap ve Secret nesneleri yapılandırmayı uygulama imajından ayırmaya, persistent volume yapısı ise pod yaşam döngüsünden bağımsız veri saklamaya yardımcı olur.

  • Deklaratif dağıtım ve kontrollü güncelleme
  • Arızalı pod yerine yeni örnek oluşturma
  • Servis keşfi ve trafik yönlendirme
  • İhtiyaca göre yatay ölçekleme
  • Yapılandırma, secret ve kalıcı veri yönetimi

Kubernetes nasıl çalışır?

Bir Kubernetes kümesi control plane ve bir veya daha fazla worker node'dan oluşur. API server, kullanıcıların ve otomasyon araçlarının küme ile konuştuğu giriş noktasıdır. Scheduler yeni pod için uygun node'u seçer. Controller bileşenleri tanımlanan durumla gerçek durum arasındaki farkı izler ve gerekli düzeltmeleri başlatır.

Worker node üzerinde kubelet, kendisine atanan pod'ların çalışmasını takip eder. Container runtime imajları çalıştırır; ağ bileşenleri pod'lar ve servisler arasındaki iletişimi sağlar. Bir CI/CD akışı yeni bir imaj ve Deployment tanımı gönderdiğinde control plane bunu kaydeder, scheduler yerleşimi belirler ve node'lar yeni duruma yaklaşır.

Temel Kubernetes bileşenleri

Cluster, tüm control plane ve worker node kaynaklarını kapsar. Node, pod'ların çalıştığı fiziksel veya sanal makinedir. Pod ise Kubernetes'in en küçük dağıtılabilir birimidir ve aynı ağ ile depolama bağlamını paylaşan bir veya daha fazla container içerebilir.

Deployment, uygulamanın hangi imajla ve kaç replica halinde çalışacağını açıklar. ReplicaSet bu replica sayısını korur. Service, pod'ların geçici IP adreslerinden bağımsız kararlı bir erişim noktası oluşturur. ClusterIP küme içi erişim sağlar; NodePort belirli bir node portunu açar; LoadBalancer ise desteklenen bulut entegrasyonunda harici yük dengeleyici talep eder.

ConfigMap gizli olmayan ayarları, Secret ise hassas yapılandırma verilerini taşıyan nesnelerdir. Kalıcı veri için uygulama bir PersistentVolumeClaim ister; uygun PersistentVolume bu talebe bağlanır. Bu ilişki, verinin pod yeniden oluşturulduğunda kaybolmamasını sağlayan depolama katmanını kurar.

Docker ile Kubernetes arasındaki fark nedir?

Docker ve benzeri container araçları uygulama imajı oluşturma ve container çalıştırma sürecinde kullanılır. Kubernetes ise çok sayıda container'ı bir makine kümesi üzerinde yerleştiren, ölçekleyen ve erişilebilir tutan orkestrasyon katmanıdır. Bu nedenle iki teknoloji doğrudan birbirinin yerine geçmez; container üretim akışı ile küme operasyonu farklı sorumluluklardır.

Kubernetes ne zaman kullanılmalı?

Kubernetes, birden fazla servis ve ekip içeren uygulamalarda, sık CI/CD dağıtımlarında, otomatik ölçekleme ihtiyacında ve deklaratif altyapı standardı arandığında güçlü bir seçenektir. Mikroservis sayısı ve operasyon gereksinimi büyüdükçe ortak orkestrasyon modeli tekrarlanan manuel işleri azaltabilir.

Tek sunuculu küçük bir uygulamada, sınırlı operasyon ekibinde veya ölçekleme ve küme toleransı gerekmeyen bir iş yükünde Kubernetes gereksiz karmaşıklık oluşturabilir. Böyle durumlarda doğrudan bir sanal sunucu veya daha basit bir uygulama çalıştırma modeli daha ekonomik ve anlaşılır olabilir.

Yönetilen Kubernetes nedir?

Self-managed modelde ekip, control plane kurulumu, küme yaşam döngüsü ve altyapı entegrasyonlarının daha büyük bölümünü üstlenir. Yönetilen Kubernetes, bu sorumlulukların sağlayıcı tarafından tanımlanan kısmını hizmete dönüştürür. Kullanıcı ekibi yine uygulama tanımları, erişim politikaları, kaynak talepleri ve iş yükü gözlemlenebilirliğinden sorumludur.

PortvMind Cloud VKE, panelden yönetilen küme oluşturma, Terraform ile Infrastructure as Code, çoklu küme yönetimi ve asenkron, izlenebilir küme yaşam döngüsü sunar. Backup entegrasyonu Kubernetes PVC yedekleme akışını destekler. VKE, vMind tarafından geliştirilen açık kaynak Kubernetes engine’dir; node seviyesinde otomatik ölçeklendirme, Load Balancer ve storage class desteğini otomatik olarak sağlar.

FAQ

Kubernetes hakkında sık sorulan sorular

Kubernetes nedir, ne işe yarar?

Kubernetes, container uygulamalarını bir küme üzerinde dağıtan, ölçekleyen ve erişilebilir tutan açık kaynaklı orkestrasyon platformudur. İstenen replica sayısını korur, arızalı pod'ları değiştirir ve servis trafiğini uygun pod'lara yönlendirir.

Kubernetes ile Docker arasındaki fark nedir?

Docker ve benzeri araçlar imaj oluşturma ve container çalıştırma akışına odaklanır. Kubernetes çok sayıda container'ı birden fazla node üzerinde yerleştiren ve yöneten orkestrasyon katmanıdır. Birbirlerinin doğrudan alternatifi değildirler.

Pod, node ve cluster arasındaki fark nedir?

Pod en küçük dağıtılabilir Kubernetes birimidir. Node, pod'ların çalıştığı fiziksel veya sanal makinedir. Cluster ise control plane ile tüm worker node'ları ve bunların kaynaklarını kapsayan bütündür.

Yönetilen Kubernetes nedir?

Yönetilen Kubernetes, küme altyapısının ve yaşam döngüsünün sağlayıcı tarafından tanımlanan bölümünün hizmet olarak sunulduğu modeldir. Uygulama ekipleri kendi workload tanımları, güvenlik politikaları ve kaynak yönetiminden sorumlu olmaya devam eder.

Kubernetes her proje için gerekli midir?

Hayır. Tek sunucuda çalışan küçük bir uygulama veya sınırlı operasyon ekibi için Kubernetes karmaşıklığı faydasını aşabilir. Birden fazla servis, sık dağıtım, ölçekleme ve yüksek erişilebilirlik ihtiyacı olduğunda daha anlamlı hale gelir.

Birincil kaynaklar

Araştırma kaynakları

Teknik açıklamalar aşağıdaki birincil kaynaklara dayanır.

  1. Kubernetes Genel Bakış

    Kubernetes'in deklaratif orkestrasyon yaklaşımı ve temel platform tanımı.

    Yayıncı
    Kubernetes Documentation
    Tür
    Resmi teknik dokümantasyon
    Erişim
  2. Kubernetes Bileşenleri

    Control plane, node, scheduler, kubelet ve küme bileşenlerinin görevleri.

    Yayıncı
    Kubernetes Documentation
    Tür
    Resmi teknik dokümantasyon
    Erişim
  3. Pod Kavramı

    Pod'un Kubernetes'teki en küçük dağıtılabilir iş yükü birimi olması.

    Yayıncı
    Kubernetes Documentation
    Tür
    Resmi teknik dokümantasyon
    Erişim
  4. Service Kavramı

    Service kaynaklarının Pod trafiğini ve servis keşfini düzenleme biçimi.

    Yayıncı
    Kubernetes Documentation
    Tür
    Resmi teknik dokümantasyon
    Erişim