Kubernetes, Google tarafından geliştirilen açık kaynaklı bir konteyner orkestrasyon platformudur. 2014 yılında açık kaynak olarak kullanıma sunulmuştur. Kubernetes, özellikle konteynerleştirilmiş uygulamaları yönetmek, ölçeklendirmek ve dağıtmak için tasarlanmıştır.
Yunanca “dümenci” ya da “kaptan” anlamına gelen Kubernetes, konteyner orkestrasyonunu gerçekleştiren açık kaynaklı bir yazılımdır. Kubernetes (sıklıkla “k8s” olarak kısaltılır), Docker gibi kapsayıcılı uygulamaları yönetebilir, ölçeklendirebilir ve dağıtabilir. Kubernetes kullanıcıları, ne tür bir kapsayıcı mimarisi istediklerini tanımlayabilir ve yazılım; kapsayıcılar birden fazla uygulama ve ana bilgisayarda olsa bile, mevcut işlem kaynaklarına dayalı olarak kapsayıcıları bu parametreler içinde çalışacak şekilde otomatik olarak zamanlar.
Kubernetes’in Temel Özellikleri
- Konteyner Orkestrasyonu: Kubernetes, birden fazla konteynerin koordinasyonunu sağlar. Bu, uygulamaların farklı bileşenlerinin ayrı konteynerlerde çalıştırılmasını ve bu bileşenlerin birbiriyle nasıl etkileşimde bulunacağını yönetmeyi içerir.
- Otomatikleştirilmiş Dağıtım ve Geri Alma: Kubernetes, uygulamaların otomatik olarak dağıtılmasını ve gerektiğinde önceki sürümlere geri dönülmesini sağlar.
- Otomatik Yük Dengeleme ve Ölçeklendirme: Kubernetes, ağ trafiğini dağıtmak ve uygulama yüklerine göre kaynakları otomatik olarak ölçeklendirmek için yerleşik yük dengeleme ve ölçeklendirme özelliklerine sahiptir.
- Öz-iyileştirme: Kubernetes, hatalı konteynerleri otomatik olarak yeniden başlatır, başarısız olan düğümleri değiştirir, kullanıcı tanımlı sağlık kontrollerine dayanarak dağıtımları yeniden ölçeklendirir.
- Depolama Orkestrasyonu: Kubernetes, yerel depolama, bulut sağlayıcıları ve ağ depolama çözümleri gibi çeşitli depolama sistemlerini entegre edebilir ve yönetebilir.
Kubernetes’in Temel Bileşenleri
- Pod: Kubernetes’teki en küçük dağıtım birimi olan Pod, bir veya birden fazla konteyneri içerir ve bu konteynerler aynı ağ alanını paylaşır.
- Service: Service, Kubernetes’te çalışan uygulamaların dış dünyaya açılmasını sağlayan bir ağ servisi türüdür.
- Deployment: Deployment, belirli bir uygulamanın belirtilen sayıda Pod’da çalışmasını ve gerektiğinde güncellenmesini sağlayan bir Kubernetes kaynağıdır.
- ConfigMap ve Secret: ConfigMap, yapılandırma verilerini saklamak için, Secret ise hassas verileri (örneğin, şifreler, OAuth tokenları) güvenli bir şekilde saklamak için kullanılır.
- Node: Kubernetes kümesindeki fiziksel veya sanal makineler olup, Pod’ların çalıştığı yerlerdir.
Kubernetes, mikro hizmet mimarisine sahip uygulamaların yönetimini kolaylaştıran güçlü bir platformdur ve konteyner tabanlı altyapının işletimini ve yönetimini standartlaştırır. Bu özellikleri ile hem geliştiricilere hem de operasyon ekiplerine büyük avantajlar sağlar.