Site icon Kubernetes Türkiye ☁️ 🐳 ☸️

Kubernetes Nedir?Kubernetes Komponentleri Nelerdir?

Kubernetes hem beyan temelli yapılandırmayı hem de otomasyonu kolaylaştıran, container iş yüklerini ve hizmetleri yönetmek için oluşturulmuş,taşınabilir ve genişletilebilir açık kaynaklı bir platformdur. Kubernetes Google tarafından GO dilinde geliştirilmiş Cloud Native Computing Foundation(CNCF) tarafından desteklenen mevcut konteyner haline getirilmiş uygulamalarınızı otomatik deploy etmek, sayılarını arttırıp azaltmak gibi işlemler ile birlikte yönetmenizi sağlayan bir Konteyner kümeleme (container cluster) aracıdır.

Kubernetes Modüler Yapısı:

Kubernetis’de önemli özelliklerinden bir tanesi ise biz kubernetise istediğimiz yapıyı söylüyoruz ve kubernetes bunu bizim için oluşturuyor.Sonrasında da bu yapıyı gözlemliyor eğer yapı bizim beyan ettiğimiz yani deklare ettiğimiz durumun dışına çıkarsa da Kubernetes otomatik olarak bunu düzenliyor ve bizim istediğimiz konfigürasyona geri döndürüyor. Bu özelliği bir örnekle açıklamak istiyorum.
Biz kubernetise nginx:latest imajından bir yapı oluşturmasını isteyelim ve sistem genelinde’de 10 tane container çalışacak diyelim dış dünyaya’da 80 portundan yayınlanacağını deklare edelim.(Desired State yani istenilen durum).Kubernetes bizim istediğimiz bu yapıyı oluşturduktan belli bir süre sonra containerlardan birisi bir şekildi indi diyelim kubernetes bu durumu hemen fark edip belirttiğimiz özelliklerde bir container oluşturup istenilen durum ile mevcut durumu birbirine eşitleyecektir.

Kısacası Kubernetes açık kaynak,modüler yapı,beyan temelli çalışma ve otomatizasyon özelliklerine sahip popüler bir container orchestration aracıdır.

Kubernetes Komponentleri Nelerdir?

Bu bölüme geçmeden önce bu bölümün daha iyi anlaşılması için sizlere bir örnek vermek istiyorum.

Yukarıda verdiğim örnekten de tahmin edeceğiniz üzere aslında bütün bunlar bir kubernetes komponentini temsil ediyor.

Yönetim → Control Plane veya Master Nodes

yönetim komponentlerini temsil ediyor.

Üretim → Worker Nodes

üretim komponentlerini temsil ediyor.Şimdi bu komponentleri daha yakından tanıyalım.

Controller-manager altındaki controllerlar kubernetes clusterın mevcut durumuyla ondan istenilen durum arasında fark olup olmadığını denetlerler. Apiserver aracılığıyla etcd’de saklanan cluster durumunu inceler ve eğer mevcut durumla istenilen durum arasında fark varsa bu farkı oluşturan kaynakları oluşturur,günceller gerekirse siler ve bu durumu eşitler.Siz kubernetes uygulamınızın 2 pod olarak çalışmasını istenilen durum olarak bildirdiğiniz ve kubernetes’de bunu gerçekleştirdi. Uygulamanızın koştuğu 3 pod çalışmaya başladı fakat podlardan bir tanesi patladı. Controller-manager bu durumu algılayarak hemen bir pod oluşturulmasını sağlar. Bu sayede istenilen durum ile mevcut durum eşitlenir(desired state=current state).

-- İş yüklerimiz worker node’lar üzerinde çalışır. Worker node dediğimiz containerları üzerinde çalıştırdığımız yani podlarımızı çalıştırdığımız esas yerlerdir.Bunlar üzerlerinde containerd,docker gibi bir container runtime barındıran cluster’a dahil olan sistemlerdir.Her worker node’da 3 temel komponent bulunur.

İlk ve en önemli komponent containerların çalışmasını sağlayacak container runtime dır. Varsayılan olarak bu docker dır fakat kubernetes docker runtime desteğini bazı nedenlerden dolayı bırakıp containerd’ye geçmiştir. Containerd’de aslında docker’dan farklı değildir. Hatta docker’da container oluşturma, çalıştırma altyapısı olarak containerd’yi kullanır. Özetle her kubernetes worker node’unda containerların çalışması için bir container runtime bulunur.

Bu yazımda sizlere Kubernetes mimarisini ve komponentlerini en yalın ve sade şekilde anlatmaya çalıştım umarım sizde okurken keyif almışsınızdır bir başka yazımda görüşmek üzere…

Exit mobile version