Kubernetes, kapsayıcılı iş yüklerini ve hem bildirime dayalı hem de hizmetleri destekleyen, taşınabilir, genişletilebilir, açık kaynaklı bir platformdur. “Kube” ve “k8s” olarak kısaltılan Kubernetes, şirket içi altyapıyı veya genel bulut platformlarını kullanarak bulut yerel uygulamalarının dağıtımını ve yönetimini otomatikleştirir.

Kapsayıcı merkezli yönetim yazılımı olan Kubernetes, uygulamaları dağıtmak ve çalıştırmak için fiili standart haline geldi. Google Cloud, orijinal olarak Google’da geliştirilen ve 2014 yılında açık kaynak olarak piyasaya sürülen Kubernetes’in doğum yeridir.

Kubernetes, Google’ın kapsayıcı iş yüklerini ve açık kaynak topluluğunun katkılarını 15 yıl boyunca çalıştırmaktadır. Google’ın dâhili küme yönetim sisteminden esinlenerek hazırlanan Kubernetes, uygulamayı yönetmekle ilgili her şeyi kolaylaştırır. Otomatik konteyner düzenlemesi sağlayan Kubernetes, güvenilirliğinizi artırır. Günlük işlemlere atfedilen süreyi ve kaynakları azaltır. Özetle Kubernetes, konteyner yönetiminin operasyonel görevlerini otomatikleştirir, uygulamalardaki değişiklikleri kullanıma sunar, uygulamaların değişen ihtiyaçlara uyacak şekilde yukarı ve aşağı ölçeklendirilmesinde yardımcı olur.

Kubernetes, şirket içi altyapıyı veya genel bulut platformlarını kullanarak bulut yerel uygulamalarının dağıtımını ve yönetimini otomatikleştirir. Uygulama iş yüklerini bir Kubernetes kümesi arasında dağıtır ve dinamik konteyner ağ ihtiyaçlarını otomatikleştirir. Kubernetes, çalışan konteynerlere depolama ve kalıcı birimler tahsis eder ve otomatik ölçeklendirme sağlar. İstenen uygulama durumunu sürdürmek için sürekli olarak çalışarak esneklik sağlar.

Kubernetes Nasıl Çalışır?

Bir uygulamayı taşınabilir ve dağıtımı kolay bir biçimde kapsar. Kubernetes mimarisi, konteynerli (kapsayıcı) uygulamaları çalıştırmak için tasarlanmıştır. Kubernetes kümesi, en az bir kontrol düzlemi ve en az bir çalışan düğümden (genellikle bir fiziksel veya sanal sunucu) oluşur. Kontrol düzleminin iki ana sorumluluğu vardır. Kubernetes API‘sini, API sunucusu aracılığıyla kullanıma sunar ve kümeyi oluşturan düğümleri yönetir. Kontrol düzlemi, küme yönetimi hakkında kararlar alır, küme olaylarını algılar ve bunlara yanıt verir.

Kubernetes’te çalışan bir uygulama için en küçük yürütme birimi, bir veya daha fazla konteynerden oluşan Kubernetes Pod’dur.

Kubernetes nasıl çalışır? Anlamak için Kubernetes bileşenleri ve işlevlerini bilmek de çok önemlidir.

Kontrol düzlemi, iletişimi kontrol etmek, düğümleri yönetmek ve bir Kubernetes kümesinin durumunu takip etmek için kullanılan dört ana bileşene sahiptir.

  • Kube-apiserver: Adından da anlaşılacağı gibi, kube-apiserver, Kubernetes API‘sini ortaya çıkarır.
  • Etcd: Kubernetes kümesiyle ilgili tüm verilerin depolandığı bir anahtar/değer deposudur.
  • Kube-scheduler: Atanmış düğümü olmayan yeni Kubernetes Pod’larını izler ve bunları kaynaklara, ilkelere ve benzerlik belirtimlerine göre yürütülmek üzere bir düğüme atar.
  • Kube-controller-manager: Kontrol düzleminin tüm kontrolör fonksiyonları tek bir ikili dosyada derlenir.

Kube-controller-manager

Bir K8s düğümünün üç ana bileşeni vardır:

  • Kubelet: Bir Kubernetes Pod’unda gerekli konteynerlerin çalıştığından emin olan bir araçtır.
  • Kube-proxy: Ağ kurallarını korumak ve iletişime izin vermek için bir kümedeki her düğümde çalışan bir ağ proxy’sidir.
  • Container runtime (Konteyner çalışma zamanı): Konteynerleri çalıştırmaktan sorumlu yazılımdır. Kubernetes, Kubernetes CRI’ya (Konteyner Çalışma Zamanı Arayüzü) bağlı olan tüm çalışma zamanlarını destekler.

Dikkat edilmesi gereken ek şartlar şunlardır:

  • Kubernet service:  Kubernetes hizmeti, tümü aynı işlevi yerine getiren bir grup Kubernetes Pod için mantıksal bir soyutlamadır. Kubernetes hizmetlerine, pod örnekleri gelip gitse bile aynı kalan benzersiz adresler atanır.
  • Controller: Denetleyiciler, Kubernetes kümesinin gerçek çalışma durumunun istenen duruma mümkün olduğunca yakın olmasını sağlar.
  • Operatör: Kubernetes Operatörleri, çalıştırma kitabına benzer bir uygulama için etki alanına özgü bilgileri kapsüllenmesine olanak tanır. Operatörler, uygulamaya özel görevleri otomatikleştirerek, uygulamaları K8’lerde daha kolay dağıtılmasına ve yönetilmesine imkan verir.

Kubernetes Avantajları

Kubernetes platformu, bir dizi önemli avantaj sağladığı için popüler hale geldi. Kubernetes avantajları şunlardır:

  • Taşınabilirlik: Konteynerler, sanal ortamlardan yalın donanıma kadar çeşitli ortamlarda taşınabilir. Kubernetes, tüm büyük genel bulutlarda desteklenir, bunun sonucunda birçok farklı ortamda K8’lerde konteynerli uygulamalar çalıştırabilirsiniz.
  • Entegrasyon ve genişletilebilirlik: Kubernetes, günlüğe kaydetme, izleme ve uyarı hizmetleri de dâhil olmak üzere halihazırda güvendiğiniz çözümlerle çalışmak üzere genişletilebilir. Kubernetes topluluğu, zengin ve hızlı büyüyen bir ekosistem oluşturarak Kubernetes’i tamamlayan çeşitli açık kaynaklı çözümler üzerinde çalışıyor.
  • Maliyet verimliliği: Kubernetes’in doğasında bulunan kaynak optimizasyonu, otomatik ölçeklendirme ve iş yüklerini en fazla değeri sağladıkları yerde çalıştırma esnekliği, BT harcamanızın kontrolünüz altında olduğu anlamına gelir.
  • Ölçeklenebilirlik: Bulut yerel uygulamaları yatay olarak ölçeklenir. Kubernetes, otomatik ölçeklendirme kullanır. Ek konteyner örnekleri döndürür ve isteğe göre otomatik olarak ölçeklenir.
  • API tabanlı: Kubernetes’in temel yapısı, REST API’sidir. Kubernetes ortamındaki her şey programlama yoluyla kontrol edilebilir.
  • Basitleştirilmiş CI/CD: CI/CD, uygulamaları oluşturmayı, test etmeyi ve üretim ortamlarına dağıtmayı otomatikleştiren bir DevOps uygulamasıdır. Kuruluşlar, yüke dinamik olarak uyum sağlayan ölçeklenebilir CI/CD ardışık düzenleri oluşturmak için Kubernetes ve CI/CD’yi entegre ediyor.

Kubernetes vs Docker

Genellikle ikisi arasında bir seçim yapılmak üzerine karşılaştırmalar yapılan Kubernetes ve Docker, konteynerli uygulamaları çalıştırmak için farklı ancak tamamlayıcı teknolojilerdir.

Docker, uygulamanızı çalıştırmak için ihtiyacınız olan her şeyi, saklayan ve gerektiğinde açılabilen bir kutuya koymanıza olanak tanır. Uygulamalarınızı kutulamaya başladığınızda, onları yönetmenin bir yoluna ihtiyacınız var, Kubernetes’in yaptığı da budur.

Kubernetes, İngilizce’de “kaptan” anlamına gelen Yunanca bir kelimedir. Kaptanın geminin denizlerde güvenli yolculuğundan sorumlu olduğu gibi, Kubernetes de bu kutuların güvenli bir şekilde kullanılabilecekleri yerlere taşınmasından ve teslim edilmesinden sorumludur.

  • Kubernetes, Docker olmadan kullanılabilir.
  • Docker, Kubernetes’e bir alternatif değildir. bu nedenle “Kubernetes mi Docker” mı sorusu yanlıştır. Uygulamalarınızı konteyner haline getirmek ve bunları uygun ölçekte çalıştırmak için Kubernetes’i, Docker ile kullanmakla doğru olan yaklaşımdır.
  • Docker ve Kubernetes arasındaki fark, uygulamalarınızın konteynerleştirilmesinde ve çalıştırılmasında her birinin oynadığı rolle ilgilidir.
  • Docker, uygulamaları konteynerlerde paketleme ve dağıtma için açık bir endüstri standardıdır.
  • Kubernetes, konteynerli uygulamaları dağıtmak, yönetmek ve ölçeklendirmek için Docker’ı kullanır.

BİR CEVAP BIRAK

Please enter your comment!
Please enter your name here