İçeriğe geç
parazade

Kubernetes Nedir?

Yayın: · Son güncelleme:

Kubernetes Nedir? Kısaca

Kubernetes (kısaca K8s), çok sayıda konteynerin sunucular üzerinde dağıtılmasını, ölçeklendirilmesini, güncellenmesini ve arıza durumunda yeniden başlatılmasını otomatik olarak yöneten açık kaynak orkestrasyon platformudur.

Kubernetes nedir?
İçindekiler
  1. Kubernetes nedir?
  2. Temel kavramlar
  3. Ne işe yarar?
  4. Nelere dikkat etmeli?

Kubernetes nedir?

Kubernetes, konteyner tabanlı uygulamaları büyük ölçekte çalıştırmak için kullanılan yönetim platformudur. Google'ın iç sistemlerinden edindiği deneyimle geliştirildi ve 2014'te açık kaynak olarak yayımlandı. Bugün Cloud Native Computing Foundation (CNCF) çatısı altında topluluk tarafından geliştirilir.

Adı Yunancada "dümenci" ya da "kaptan" anlamına gelir. K8s kısaltması, K ile s arasındaki sekiz harften gelir.

Temel kavramlar

Kubernetes'te sık karşılaşılan terimler şunlardır. Cluster (küme), birlikte yönetilen sunucuların tümüdür. Node, kümedeki her bir sunucudur. Pod, bir veya birkaç konteynerin birlikte çalıştığı en küçük birimdir.

Deployment ise bir uygulamanın kaç kopyayla ve hangi sürümle çalışacağını tanımlar. Siz "bu uygulamadan 5 kopya çalışsın" dersiniz, Kubernetes bu durumu sürekli korur. Bir pod çökerse yenisini başlatır, bir node arızalanırsa podları diğer sunuculara taşır.

Ne işe yarar?

Varsayımsal bir yemek siparişi uygulaması düşünün. Öğle ve akşam saatlerinde trafik katlanıyor. Kubernetes, işlemci kullanımı arttığında sipariş servisinin kopya sayısını 3'ten 12'ye çıkarıyor, gece trafiği düşünce yeniden azaltıyor. Yeni sürüm yayımlandığında da podları tek tek güncelleyerek uygulamayı kesintisiz çalışır hâlde tutuyor.

Nelere dikkat etmeli?

Kubernetes güçlüdür ama öğrenme eğrisi diktir. Birkaç konteynerden oluşan küçük bir proje için gereğinden karmaşık olabilir; bu durumda Docker Compose ya da bir PaaS hizmeti daha pratiktir.

Kendi kümenizi kurmak yerine AWS EKS, Azure AKS veya Google GKE gibi yönetilen hizmetlerle başlamak bakım yükünü azaltır. Kaynak sınırları (requests ve limits) tanımlanmadığında tek bir uygulama tüm kümenin kaynaklarını tüketebilir. Bu ayarları baştan yapmak ve otomatik ölçeklendirme kurallarını küçük bir trafik testiyle denemek sık yaşanan sürprizleri önler.

Sıkça Sorulan Sorular

Kubernetes ile Docker arasındaki fark nedir?

Docker konteyner oluşturur ve tek bir makinede çalıştırır. Kubernetes ise çok sayıda konteyneri birden fazla sunucuya dağıtır, sayılarını ayarlar ve arızalarda yeniden başlatır. İkisi genellikle birlikte kullanılır.

Kubernetes öğrenmek için neye ihtiyaç var?

Önce konteyner ve Docker temellerini, ardından temel Linux ve ağ bilgisini öğrenmek gerekir. Minikube ya da kind gibi araçlarla kendi bilgisayarınızda küçük bir küme kurarak deneme yapabilirsiniz.

İlgili terimler

DockerDocker, uygulamaları tüm bağımlılıklarıyla birlikte konteyner adı verilen taşınabilir paketlere dönüştüren ve bu konteynerleri çalıştıran açık kaynak kodlu bir platformdur. Uygulamanın her ortamda aynı şekilde çalışmasını sağlar.Konteyner(Container)Konteyner (container), bir uygulamayı çalışması için gereken kütüphane, ayar ve bağımlılıklarla birlikte tek bir pakette toplayan ve ana makinenin işletim sistemi çekirdeğini paylaşarak yalıtılmış biçimde çalıştıran hafif yazılım ortamıdır.Orkestrasyon(Container Orchestration)Orkestrasyon, yazılımda çok sayıda konteynerin ya da servisin sunuculara dağıtılması, ölçeklendirilmesi, birbirine bağlanması ve arıza durumunda yeniden başlatılması gibi işlerin otomatik olarak koordine edilmesidir.Otomatik Ölçeklendirme(Auto Scaling)Otomatik ölçeklendirme (auto scaling), bir uygulamanın kullandığı sunucu, konteyner ya da işlem kapasitesinin anlık talebe göre önceden tanımlı kurallarla kendiliğinden artırılması ve azaltılmasıdır.Küme(Set)Küme (set), programlamada her değeri yalnızca bir kez tutan, sırasız bir veri yapısıdır. Tekrar eden kayıtları ayıklamak ve birleşim, kesişim gibi matematiksel küme işlemleri yapmak için kullanılır.Deploy(Deployment)Deploy (deployment), yazılımın hazırlanan sürümünün bir sunucuya ya da platforma kurularak çalışır ve erişilebilir hâle getirilmesidir. Türkçede dağıtım, yayına alma ya da canlıya alma olarak geçer.