Bu yazımız da Kubernetes hakkında olacak. Bu yazı Kubernetes'e genel bir bakış sunacak. Umarız işinize yarar bilgiler bulabilirsiniz.
Kubernetes nedir?
Kubernetes, hem bildirim temelli yapılandırmayı hem de otomasyonu kolaylaştıran, kapsayıcıya alınmış iş yüklerini ve hizmetleri yönetmek için taşınabilir, genişletilebilir, açık kaynaklı bir platformdur. Büyük, hızla büyüyen bir ekosisteme sahiptir. Kubernetes hizmetleri, desteği ve araçları geniş çapta mevcuttur.
Kubernetes adı, dümenci veya pilot anlamına gelen Yunancadan gelmektedir. Google, Kubernetes projesini 2014 yılında açık kaynaklı hale getirdi. Kubernetes, Google'ın üretim iş yüklerini geniş ölçekte çalıştırma deneyimini topluluktan gelen türünün en iyisi fikir ve uygulamalarla birleştiriyor.
K8'ler olarak da bilinen Kubernetes, kapsayıcıya alınmış uygulamaların (containerized applications) dağıtımını, ölçeklendirilmesini ve yönetimini otomatikleştirmek için Google tarafından sunulmuş açık kaynaklı bir sistemdir.
Kolay yönetim ve keşif (discovery) için bir uygulamayı oluşturan kapsayıcıları (containers) mantıksal birimler halinde gruplar. Kubernetes, topluluğun türünün en iyisi fikirler ve uygulamalarla birlikte Google'da üretim iş yüklerini çalıştırma konusundaki 15 yıllık deneyimine dayanmaktadır.
Kubernetes, açık kaynaklı bir konteyner düzenleme aracıdır. Kapsayıcıları otomatik olarak dağıtma, ölçeklendirme ve yönetme, kapsayıcı düzenleme olarak bilinir.
Piyasada Docker Swarm, Apache Mesos vb. Gibi çeşitli başka konteyner düzenleme araçları mevcuttur. Docker Swarm'ın kurulumu ve başlaması kolaydır, ancak karmaşık mimari için gerekli olan kubernetes gibi bazı gelişmiş özellikleri içermez. .
Basics of Kubernetes Architecture
Kubernetes Mimarisi (Kubernetes Architecture)
Bir Kubernetes kümesi, Ana düğüm ve çalışan düğümleri içeren bileşenlerden oluşur.
Düğüm: - kubernetes'in kurulu olduğu fiziksel makine veya sanal makine olabilir
Master Node (Ana Düğüm)
Ana düğüm, kapsayıcıların çalışan düğümler üzerinde düzenlenmesinden fiilen sorumludur. Aşağıdaki gibi birkaç bileşenden oluşur
Api Sunucusu: - API Sunucusu, küme içindeki tüm bileşenlerle iletişim kurar. Kubernetes için Ön Uç görevi görecek.
etcd: - etcd, kümeyi yönetmek için kullanılan tüm verileri depolamak için kullanılır. Ana düğüm, düğümlerin, bölmelerin ve kapsayıcıların durumuna ilişkin parametreleri almak için etcd'yi sorgular.
Denetleyici: - Denetleyicinin rolü, düğümlerin istenen durumunu API Sunucusundan elde etmektir. Kontrol etmekle görevli olduğu düğümlerin mevcut durumunu kontrol ederek herhangi bir farklılık olup olmadığını tespit ederek varsa bunları çözer.
Zamanlayıcı: - Kümeniz sağlıklı mı? Yeni kaplara ihtiyaç duyulursa nereye sığacaklar? Bunlar Kubernetes planlayıcısının endişeleridir. Zamanlayıcı, kümenin sağlığıyla birlikte CPU veya bellek gibi bir bölmenin kaynak ihtiyaçlarını dikkate alır. Ardından, bölmeyi uygun bir hesaplama düğümüne planlar.
Worker Node (İşçi Düğümü)
İşçi düğümü, bölmeleri (pods) kullanarak uygulamayı çalıştıran düğümdür. Ana düğüm tarafından yönetilir.
1. kubelet: - Her bir çalışan düğümü, API Sunucusu ile iletişim kuran küçük bir uygulama olan bir kubelet içerir. Kublet, çalışan kapsayıcıların durumunu izler ve durum, olaylar ve kaynak tüketimi hakkında API Sunucusuna rapor verir ve API Sunucusu tarafından işçi düğümünde talep edilen eylemi gerçekleştirir.
2. Container runtime (Kapsayıcı çalışma zamanı): - Kapları çalıştırmak için, her çalışan düğümünün bir kapsayıcı çalıştırma zamanı motoru vardır. Docker bir örnektir, ancak Kubernetes rkt ve CRI-O gibi diğer Open Container çalışma zamanlarını da destekler.
Dolayısıyla, basit bir şekilde Kubernetes mimarisi budur.
KURULUM
Araçları yükleyin
Kubectl'i kurun ve ayarlayın
Kubernetes komut satırı aracı kubectl, Kubernetes kümelerinde komut çalıştırmanıza olanak tanır. Uygulamaları dağıtmak, küme kaynaklarını incelemek ve yönetmek ve günlükleri görüntülemek için kubectl'i kullanabilirsiniz. Kubectl işlemlerinin tam listesi için bkz. Kubectl'e genel bakış.
Siz başlamadan önce
Kümenizin bir küçük sürüm farkı içinde olan bir kubectl sürümü kullanmanız gerekir. Örneğin, bir v1.2 istemcisi v1.1, v1.2 ve v1.3 ana sürümüyle çalışmalıdır. Kubectl'in en son sürümünü kullanmak, öngörülemeyen sorunları önlemeye yardımcı olur.
Kubernetes komut satırı aracı kubectl, Kubernetes kümelerinde komut çalıştırmanıza olanak tanır. Uygulamaları dağıtmak, küme kaynaklarını incelemek ve yönetmek ve günlükleri görüntülemek için kubectl'i kullanabilirsiniz.
Kubectl'i nasıl indirip kuracağınız ve kümenize erişmek için nasıl ayarlayacağınız hakkında bilgi için bkz.
Ayrıca kubectl referans belgelerini de okuyabilirsiniz.
Kind
kind, yerel bilgisayarınızda Kubernetes çalıştırmanıza izin verir. Bu araç, Docker'ın kurulu ve yapılandırılmış olmasını gerektirir.
minikube
Minikube, nazikçe, Kubernetes'i yerel olarak çalıştırmanıza izin veren bir araçtır. minikube, kişisel bilgisayarınızda (Windows, macOS ve Linux PC'ler dahil) tek düğümlü bir Kubernetes kümesi çalıştırır, böylece Kubernetes'i deneyebilirsiniz veya günlük geliştirme çalışmaları için.
Resmi Başlayın'ı takip edebilirsiniz! Odak noktanız aracın yüklenmesine yönelikse kılavuzluk edin.
Minikube çalıştıktan sonra, onu örnek bir uygulama çalıştırmak için kullanabilirsiniz.
Kubeadm
Kubernetes kümeleri oluşturmak ve yönetmek için kubeadm aracını kullanabilirsiniz. Kullanıcı dostu bir şekilde minimum uygulanabilir, güvenli bir küme kurmak ve çalıştırmak için gerekli eylemleri gerçekleştirir.
Kubeadm'i yüklemek size kubeadm'ı nasıl kuracağınızı gösterir. Kurulduktan sonra, bir küme oluşturmak için kullanabilirsiniz.
Devamı ilk fırsatta yazılacak... Şimdilik bu kadar!