Buluta Yönelik İşletim Sistemi: Kubernetes
K8s adıyla da bilinen ve Yunanca “gemici” ya da “pilot” anlamlarına gelen Kubernetes, buluta yönelik bir işletim sistemidir. Konterynerlara alınmış uygulama ve hizmet kümelerini yönetmek için kullanılan buluta yönelik işletim sistemi Kubernetes, açık kaynaklı bir uygulama olması ve Go kaynak diliyle yazılması sebebiyle geniş bir kullanım alanı bulmakta ve hızla büyümektedir. Peki, Kubernetes nasıl kullanılır ve ne işe yarar? Bu konuyla ilgili merak ettiğiniz tüm detayları yazımızın devamında bulabilirsiniz.
Kubernetes Konterynerları
Kubernetes’e dair terimlerden bir diğeri de Kubernetes konteynerlarıdır. Sık sık sanal makinelerle karşılaştırılan Kubernetes konteynerları, sanal makinelere kıyasla daha küçüktür. Yalnızca uygulamanın gerek duyduğu kaynakları içeren konterynerlar; uygulamanın doğru kitaplıklar, bağımlılıklar ve işletim sistemleriyle çalışabilmesini sağlar. Kısacası, yazılımın güvenli ve doğru şekilde çalıştırılması için uygun kozayı Kubernetes konteynerlarının oluşturduğunu söylemek mümkündür.
Kubernetes’te Süreç ve Terimler
Kubernetes bileşenlerinin başlıcaları kümeler, düğümler ve kontrol düzlemi şeklinde sıralanabilir. Kubernetes kümesi içinde düğümleri barındırır. Düğümler, ilgili uygulamanın hizmet öbeklerini içerir. Konteynerlerın bir hizmet öbeğine göre çalışmasını kontrol eden kubelet birimi, ağ kurallarını koruyan kubernetes network vekil sunucusu ve konteyner çalışma zamanı; düğümün bileşenleridir. Kontrol düzlemi ise düğümleri ve kümeleri yönetir. Kontrol düzleminde bulunan başlıca bileşenler beş adettir. Kubernetes API sunucusu, Kubernetes kontrolünü sağlayan uygulama arayüzünü yani API’yi sağlar. Cloud controller manager ise API’lerin yönetimine yardımcı olur. Kubernetes programlayıcısı yeni hizmet öbeklerini uygun düğümlerle eşler. Kubernetes controller manager, düğüm işleyişini yönetmek ve arızaları tespit etmek için çalışır. Etcd ise küme verileri için anahtar değer sağlayan bir depo görevi görür.
Kubernetes Çalışma Şekli
Kubernetes’in çalışma şekli birkaç adımdan oluşur. Öncelikle “kubeclt” şeklinde nitelenen istek API sunucusuna iletilir. Sunucu içinde bu istek kontrol edildikten sonra etcd’ye aktarılır. Etcd üzerine yazılan istek, API sunucuna bildirilir. Bunun üzerine API sunucusu, konteyner çalışma alanı olarak nitelendirilebilecek olan pod biriminin yaratılacağına dair bilgilendirmeyi pod yöneticisi olan Scheduler’a gönderir. Pod’un hangi sunucu üzerinde hizmet vereceğine karar verdikten sonra Schedular, bu inceleme bilgilerini API sunucusuna iletir. Gelen bilgiler API sunucusu tarafından etcd’ye iletilir ve yazım işlemi başlar. Etcd üzerinde yazım işlemi tamamlandıktan sonra API sunucusu bilgilendirilir. İlgili düğümde yer alan kubelet birimi, kendisine iletilen bilgiler doğrultusunda konteynerı yaratır ve podla ilgili bilgileri API sunucusuna iletir. API sunucusu ise gelen son bilgileri etcd üzerine yazar.
Kubernetes Avantajları
Kubernetes’in farklı alanlarda sağladığı birçok avantaj bulunur. Bu avantajların başında talebe bağlı olarak konuşlandırma sayısında değişiklik yapılabilmesine imkan tanıması ile otomatik ölçeklendirme gelir. Bununla birlikte Kubernetes sayesinde DNS ve IP aracılığıyla konterynerda bulunan hizmetleri keşfetmek de mümkündür. Kubernetes, ağ trafiğini dağıtarak yükleri dengelemeye de yardımcı olur. Aynı zamanda Kubernetes, yerel depolamada ya da bulut depolamada düzenleme yapmaya imkan tanıyarak depolamayı yönetme olanağı sunar. Kubernetes, konteyner yönetimini size aktararak sürümleri kontrol etmenizi sağlar. Bununla birlikte Kubernetes başta SSH anahtarları olmak üzere güvenlik önlemlerini sürekli güncel tutmanıza da yardımcı olmasıyla büyük avantaj sağlar.
Kubernetes Kullanmak İçin Yapmanız Gerekenler
Kubernetes sistemi, çalışma sistemi ve içerdiği bileşenler incelendiği zaman kullanımı zor bir sistem gibi görülebilir ancak birkaç temel gereksinimi karşılamanız durumunda kolayca Kubernetes kullanımına alışabilirsiniz. Öncelikle Docker ve Kubernetes ile bir yerel geliştirme ortamı kulmanız gerekir. Ardından Helidon aracılığıyla basit bir Java mikro hizmeti oluşturmanız gerekir. Docker üzerinden mikro hizmeti konteyner imajına derlemek ise yapmanız gereken bir diğer işlemdir. Ardından mikro hizmeti bir yerel Kubernetes kümesine konuşlandırmanız gerekir. Sonrasında ise ölçeklendirme işlemini gerçekleştirerek Kubernetes kullanımına başlamak için ihtiyaç duyduğunuz tüm adımları tamamlamış olursunuz.
ETL Hakkında Sık Sorulan Sorular
Kubernetes Nedir Ne İşe Yarar?
Kubernetes, geniş kapsamlı uygulama ve hizmetlere dair verilerin yönetilmesi için kullanılabilir. Konteynerlara alınmış uygulama ve hizmetlerin yönetilmesi için Kubernetes kullanılabilir.
Docker Ve Kubernetes Farkı Nedir?
Docker ve Kubernetes sık sık birbiriyle karşılaştırılan iki uygulamadır ancak bu uygulamalar birbiriyle rakip ya da birbirine muadil sistemler değildir. Docker, konteynerların oluşturulması için kullanılan bir uygulamayken Kubernetes ise konteynerların yönetimi için kullanılır.
Kubernetes Nerelerde Kullanılır?
Kubernetes’in kullanım alanı oldukça geniştir. Çeşitli ölçeklerdeki işletmelerde kullanılabilen Kubernetes; özel sunucularda, genel bulut ortamında ya da karma bulut ortamında kullanılabilir.
Kubernetes Nasıl Çalışır?
Kubernetes’in çalışma sistemi API sunucusu, etcd ve düğümler arasında gerçekleştirilen bilgi alış verişi sonucunda bir pod üzerinde konteyner oluşturulması şeklinde özetlenebilir.