Kubernetes (K8s), konteynerleştirilmiş uygulamaları otomatik olarak dağıtmak (deploy), ölçeklendirmek (scale) ve yönetmek için kullanılan açık kaynaklı bir Infrastructure as Code (IaC) aracıdır. Google tarafından geliştirilen bu sistem, konteyner yönetimini ve orkestrasyonunu basitleştirir ve hem bulut ortamlarında hem de yerel sunucularda çalışabilir.
Kubernetes platformunun temel yapı taşıdır ve birden fazla fiziksel veya sanal makineden oluşur.
Kubernetes cluster'ındaki temel bileşenlerden biridir. Cluster içinde çalışan bir veya birden fazla pod'un bulunduğu fiziksel veya sanal makinedir. Master ve worker node olarak ikiye ayrılır.
Master node, Kubernetes cluster'ını yöneten node'dur ve yönetim görevlerini üstlenir. İçinde birçok bileşen barındırır.
Kubernetes cluster'ının merkezi yönetim birimidir. Cluster’ın genel durumu buradan yönetilir.
Tüm yönetim ve kontrol işlemleri API Server üzerinden gerçekleştirilir. Kullanıcılar veya araçlar API Server’a doğrudan erişebilir ve Kubernetes nesnelerini oluşturabilir, güncelleyebilir veya silebilir.
Kubernetes'in tutarlı ve dağıtılmış bir key-value store olarak kullanılan veritabanıdır. Cluster'ın durum bilgilerini saklar.
Cluster'daki kaynakların belirlenen durumda kalmasını sağlar. Kaynakları izler ve gerektiğinde yeniden başlatma veya ölçeklendirme işlemleri yapar.
Yeni oluşturulan pod'ların hangi node'da çalışacağını belirler. Cluster içindeki kaynakların verimli kullanımını sağlar.
Uygulamaların çalıştığı, Kubernetes objelerinin gerçekten barındığı node'lardır. Worker node şu bileşenleri içerir:
Her worker node'da bulunan temel bileşendir. Pod'ların çalıştırılmasından sorumludur. Pod'un sağlık durumunu ve kaynak kullanımını takip eder ve durumu Control Plane'e rapor eder.
Kubernetes'deki ağ trafiğini yönetir. Cluster servisleri için bağlantı yönlendirme ve yük dengeleme işlemlerini gerçekleştirir. Kube-proxy, farklı modlarda çalışabilir:
- Userspace: Eski ve daha az verimli bir yöntemdir. Bağlantı yönlendirme işlemleri kullanıcı alanında gerçekleşir.
- iptables: Daha verimli bir yöntemdir. Ağ kuralları iptables kullanılarak uygulanır.
- ipvs (varsayılan, destekleniyorsa): IP Virtual Server (ipvs) kullanılarak yapılan yük dengeleme, yüksek performans ve daha fazla özelleştirme seçeneği sunar.
Containerları çalıştıran bileşendir. Kubernetes, CRI (Container Runtime Interface) uyumlu bir runtime kullanır. Örnek container runtimelar şunlardır:
- Containerd
- CRI-O
- Rkt
- Kata Containers (eski adıyla Clear Containers ve Hyper)
- Virtlet
Bu dokümantasyon, Kubernetes'in temel bileşenlerini ve işleyişini anlamaya yönelik bir rehberdir. Daha detaylı bilgi için Kubernetes'in resmi dokümantasyonunu inceleyebilirsiniz.