Kubernetes, konteyner iş yüklerini ve hizmetlerini yönetmek için hem bildirim yapılandırmasını hem de otomasyonu kolaylaştıran taşınabilir, genişletilebilir, açık kaynaklı bir platformdur. Kubernetes hizmetleri hızla büyüyen geniş bir ekosisteme sahiptir.
Kubernetes idareci veya pilot anlamına gelmektedir ve kökeni Yunancadır. Google tarafından, 2014 yılında açık kaynak olarak geliştirilmiştir.
Geleneksel dağıtım dönemi: Kuruluşlar geçmişte fiziksel sunucularda uygulamalar çalıştırıyordu. Fiziksel bir sunucudaki uygulamalar için kaynak sınırlarını tanımlamanın bir yolu yoktu ve bu kaynak ayırma sorunlarına neden oldu. Örneğin, bir fiziksel sunucuda birden çok uygulama çalışıyorsa bir uygulama kaynakların çoğunu alabilir ve sonuç olarak diğer uygulamaların düşük performans gösterebileceği durumlara sebep olabilir. Her uygulamayı farklı bir fiziksel sunucuda çalıştırmak çözüm olsa da kaynaklar yetersiz kullanıldığı için ölçeklenemedi ve kuruluşlar için çok fazla fiziksel sunucu bulundurmak maliyetleri artırdı.
Sanallaştırılmış dağıtım dönemi: Geleneksel dağıtıma çözüm olarak sanallaştırma getirildi. Tek bir fiziksel sunucunun CPU’sunda birden fazla sanal makine çalıştırılmasına izin verilerek uygulamaların sanal makineler arasında izole edilmesi sağlandı. Bir uygulamanın bilgisine başka bir uygulama tarafından serbestçe erişilemediğinden güvenlik konusundaki endişeler azaltıldı.
Konteyner (Container) dağıtım dönemi: Konteynerler sanal makinelere benziyorlardı ancak işletim sistemini uygulamalar arasında paylaşmak için rahat yalıtım özelliklerine sahiplerdi. Bir sanal makineye benzer şekilde konteynerlerin de kendi dosya sistemi, merkezi işlem birimi, belleği ve işlem alanı vardı. Temel altyapıdan ayrıldıklarından, bulutlar ve işletim sistemi dağıtımları arasında taşınabilirlerdi.
Konteynerler uygulamaların bir araya getirilmesinin ve çalıştırılmasının iyi bir yoludur. Üretim ortamında, uygulamaları çalıştıran konteynerlerin yönetilmesi ve kesinti olmadığından emin olunması gerekir. Kubernetes is bu durumda devreye girmektedir. Kubernetes, dağıtılmış sistemleri esnek bir şekilde çalıştırmak için bir çerçeve sağlar. Uygulama için ölçeklendirme ve yük devretme ile ilgilenir, dağıtım kalıpları sağlar.