Kubernetes'in Geçmişi ve Evrimi

Kubernetes'in Geçmişi ve Evrimi

Kubernetes'ten Öncesi

Kubernetes ve faydalarını daha iyi anlamak için, kubernetesin tarihçesinden bahsetmemizin iyi olacağını düşünüyorum. Günümüzde web trafiğinin büyük bir kısmı Google'ın hizmetleri, reklam ağları ve analiz araçları üzerinden geçmektedir. Google, insanoğlunun hayatına girdiği günden beri her zaman yoğun istekleri işleme ile karşı karşıya kalmıştır. Bu yoğun istekleri yönetmek için devamlı veri merkezlerine yeni sunucular, o sunucuların üstlerine yeni sistemler inşa etmek ve bunları uyumlu şekilde çalıştırmak için mücadele vermiştir. Tahmin edersiniz ki binlerce makineye sahip veri merkezlerini manuel yönetmek imkansıza yakın bir çalışma olur. Bunun sonucunda google tarafında bu süreçleri otonomize etme ihtiyacı doğdu.

Borg ve Omega'nın Gelişimi ve Birleşmesi

Google mühendisleri bu sunucuları yönetebilmek için bir cluster manager sistem geliştirmeye karar verdiler ve 2003 yılında Borg adında bir cluster manager sistem yazılımı geliştirdiler. Bu yazılım binlerce işi, binlerce makine üzerinde çalışan bir çok cluster arasında çalıştırmaya ve onları yönetmeye başladı. Borg sayesinde artık süreçleri otonomize etmeye başladılar. Ancak bir sorun vardı. Borg aslında kendi içerisinde karmaşık bir sistemdi ve onu yönetmek zaman ilerledikçe zorlamaya başlamıştı ve artan iş yükü ve çeşitlilik nedeniyle taleplere cevap veremez hale gelmeye başlamıştı. Onlara daha modüler ve esnek bir yapı sunabilecek bir sisteme ihtiyaçları vardı. Bu yüzden google mühendisleri kolları baştan sıvadılar ve modüler, esnek bir yapıya sahip olacak ve borg'un iyi yaptığı işleri daha iyi yapabilecek, zaman geçtikçe ihtiyaç duyulan özellikleri de içerecek bir sistem geliştirmeye başladılar. Bu sistemin adınada Omega adını verdiler. Omega, Borg'un bazı sınırlamalarını aşmak için geliştirilmiş bir sistemdi. Ancak, geliştirme sürecinde bazı teknik zorluklarla karşılaşıldı ve bu nedenle Omega, Borg ile entegre edildi. Omega, Borg'un üzerine eklenen modüler ve esnek özelliklerle Borg'un daha güçlü ve verimli hale gelmesini sağladı. Ayrıca omega tarafındaki bu geliştirmeler Google'da çalışan bazı mühendislere ilham oldu ve yeni bir açık kaynak sistem geliştirmelerine motivasyon sağladı.

Kubernetes'in Doğuşu

Craig Mcluckie, Brendan Burns, Joe Beda adındaki bu üç google mühendisi Borg ve Omega'nın sağladığı verimlilik ve esneklikten ilham alarak, bu özellikleri daha geniş bir geliştirici topluluğu ile paylaşmak amacıyla yeni bir sistem geliştirmeye karar verdiler. Project Seven adıyla geliştirilen proje, 2014 yılında Kubernetes adını alarak bu sistemi ekosistem ile paylaştılar. Bu yeni sistemi açık kaynak yaparak, tüm geliştiricilerin kullanmasına ve katkıda bulunmasına olanak sağladı. Bu şekilde ihtiyaçlar daha hızlı giderildi. Hatalar daha hızlı farkedildi ve düzeltildi. Ayrıca 2010'ların başında bulut bilişiminin hızlıca popülerleşmesi, dağıtık sistemlere duyulan ihtiyacın artması gibi durumlar sebebiyle devops süreçleri daha önemli hale gelmeye başladı. Kubernetes bulut ortamlarında kaynakları verimli kullanma ve devops süreçlerinin içerisinde olarak yazılım geliştirme ve dağıtım süreçlerinin otomasyonunu sağlaması ve süreçlerin hızını artırması ile birlikte zamanla ekosistemde popüler olmaya başladı.

Google, Kubernetes'i 2015 yılında Cloud Native Computing Foundation'a devretti. Bu adım, Kubernetes'in daha geniş bir açık kaynak topluluğu tarafından benimsenmesini ve geliştirilmesini sağladı. CNCF, Kubernetes'in geliştirilmesini destekleyerek, konteyner orkestrasyonu için endüstri standardı haline gelmesine yardımcı oldu.

Bu yazımda Kubernetes'in geçmişini, evrimini ve nasıl bir standart hale gelmesini anlatmaya çalıştım. Bir sonraki yazımda kubernetes'in kurulumuna ve temellerine gireceğiz. Umarım sana dokunmuş olabilirim. Merak ettiğin bir şey olursa benimle iletişime geçebilirsin.

Kaynakçalar:

  1. https://research.google/pubs/large-scale-cluster-management-at-google-with-borg/

  2. https://research.google/pubs/omega-flexible-scalable-schedulers-for-large-compute-clusters/

  3. https://www.cncf.io/

  4. https://opensource.googleblog.com/2024/05/kubernetes-130-is-now-available-in-gke.html