Kubernetes Nedir?
Kubernetes, container tabanlı iş yüklerinin çalıştırılmasını ve yönetilmesini sağlayan bir orkestrasyon aracıdır. Açık kaynaklı bir konteyner düzenleme çözümü olan Kubernetes, Google tarafından GO dilinde geliştirilmiştir ve daha sonra Cloud Native Computing Foundation çatısı altına girmiştir.
Kubernetes’in en çok dikkat çeken avantajlarından biri ise geliştiricilerin, uygulamalarının iyi çalışmasının yollarını bulmaya ve bunları uygulamaya harcayacakları zamandan ve emekten tasarruf etmelerini sağlamasıdır. Geliştiriciler de tasarruf ettikleri bu kaynakları, uygulamaları için yararlı ek özellikler oluşturmaya odaklanmaya harcayabilirler.
Kubernetes ölçekleme ve yüksek erişilebilirlik sunar, bu nedenle de çok tercih edilmektedir.
Docker Nedir?
Docker, konteynerleştirme işletim sistemi seviyesinde bir açık kaynaklı sanallaştırma platformudur ve yazılım geliştiriciler ve sistemciler için geliştirilmiştir. Docker isimli bu yazılım platformunu kullanarak, uygulamalarınızı hızlı bir şekilde derleyebilir, test edebilir ve dağıtabilirsiniz. Docker, sanal makinelere bir alternatiftir.
Fakat Docker’ın sanal makinelerden temel bir farkı vardır. - Sanal makineler hakkında daha detaylı bilgiye ihtiyaç duyuyorsanız mutlaka bu blog yazımızı okuyun: Sanallaştırma ve Sanal Makineler Hakkında Her Şey - Sanal makineler tarafından oluşturulan işletim sistemleri tamamen sanaldır. Docker’ın farkı, uygulamaların üzerinde çalıştıkları sistemle aynı Linux çekirdeğini kullanmalarını sağlamasıdır. Sanal makinelere kıyasla daha az yer kaplamasının ve daha yüksek performans göstermesinin de nedeni budur.
Ancak, “Kubernetes vs. Docker” da biraz yanıltıcı bir ifadedir. Bu iki kavrama daha yakından bakıldığında, bu kelimeler birçok insanın düşündüğü gibi iki kavram değildir, çünkü Docker ve Kubernetes doğrudan rakip değildir. Docker bir containerization platformudur ve Kubernetes ise, Docker gibi container platformları için bir container düzenleyicisidir. Kubernetes, Docker tarafından oluşturulmuş ve dağıtılmış durumdaki uygulamaları orkestre eder ve yönetir.
Bu yazı, Kubernetes ve Docker ile ilgili bazı yaygın karışıklıkları gidermeyi ve “Docker vs. Kubernetes” hakkında konuşurken insanların gerçekten ne anlama geldiğini açıklamayı amaçlıyor.
Konteynerlerin Yükselişi ve Docker
İlk olarak container'ları keşfetmeden Docker hakkında konuşmak mümkün değildir. Containerlar uygulama geliştirmede kritik bir sorunu çözer. Yazılımcılar kod yazarken kendi alıştıkları geliştirilebilir ortamları üzerinde çalışıyorlar. Sorunların ortaya çıması ise bu kodu çalıştırdıklarında başlar. Kendi aygıtlarında mükemmel çalışan kodlar üretime geçildiğinde çalışmaz. Bunun birçok nedeni vardır; farklı işletim sistemi, farklı bağımlılıklar, farklı kütüphaneler.
Containerlar, bu kritik taşınabilirlik sorununu, kodu üzerinde çalıştığı temel altyapıdan ayırmanıza olanak tanır. Geliştiriciler, düzgün çalışması için gereken tüm bin dosyaları ve kütüphaneler de dahil olmak üzere uygulamalarını küçük bir kapsayıcı görüntüsünde paketleyebilirler. Kodun işleyişinde container, bir konteynerleştirme platformu olan herhangi bir bilgisayarda çalıştırılabilir.
Containerlar taşınabilir ve ölçeklendirilebilirlerdir.
Docker Hub Nedir?
Docker Hub, konteyner imajlarının yüklenmesini ve ekiplerle paylaşılmasını sağlaması için Docker tarafından sunulan bir hizmettir. Dünyanın en büyük konteyner imaj deposu olan Docker Hub'ın önemli özelliklerinin arasında depolar (repositories), takımlar ve organizasyonlar, resmi imajlar, yayıncı imajlar (publisher images) ve Webhooks vardır.
Containerların Avantajları
Taşınabilirlikle ilgili en büyük sorunu çözmenin yanı sıra, container ve container platformları geleneksel sanallaştırmaya göre birçok avantaj sağlar. Containerlar son derece az yer kaplar. Container sadece uygulamasına ve çalıştırılması gereken tüm bin dosyaları ve kitaplıkların tanımına ihtiyaç duyar. Konuk işletim sisteminin tam bir kopyasına sahip VM'lerin (Virtual Machine) aksine, container izolasyonu konuk işletim sistemine gerek kalmadan çekirdek düzeyinde yapılır. Buna ek olarak, kütüphaneler containerlar arasında olabilir, böylece bir sunucuda aynı kütüphanenin 10 kopyasına sahip olma ihtiyacını ortadan kaldırarak yerden tasarruf sağlar. Node ve ekspres çalışan 3 uygulamam varsa, 3 node ve ekspres örneğim olması gerekmez, bu uygulamalar bu bölmeleri ve kütüphaneleri paylaşabilir. Uygulamaların bağımsız ortamlarda kapsüllenmesine izin vermek, daha hızlı dağıtımlara, geliştirme ortamları arasında daha yakın eşlik ve sonsuz ölçeklenebilirliğe olanak tanır.
Bir konteyner genelde onlarca megabayt boyutundayken, kendi işletim sistemine sahip bir sanal makine genelde birkaç gigabayt boyuta sahiptir ve bu sayede sunucular sanal makinelerden çok daha fazla kapsayıcıyı barındırabilir. Bunun yanı sıra sanal makinelerin işletim sistemlerini başlatması ve sahip oldukları uygulamaları çalıştırması birkaç dakika sürerken, Konteyner uygulamalarının neredeyse anında başlatılması mümkündür. Bu özellik, kapsayıcıların ihtiyaç duyulduğu anda başlatılabileceği ve ömrünü tamamladığında kaybolarak ana bilgisayardaki kaynakları daha fazla kullanmayacağı anlamına gelir.
Containerların bir diğer faydası ise, konteynerleştirmenin daha fazla modülerliğe izin vermesi sayesinde karmaşık uygulamaların tamamını tek bir konteynerde çalıştırmak yerine, uygulamanın istenen sayıda birimlere ayrılabilmesidir. Bu biçimde oluşturulan uygulamaların yönetimi daha kolaydır çünkü her modül nispeten basittir ve tüm uygulamayı yeniden oluşturmaya gerek kalmadan modüller özelinde değişiklikler yapılabilir.
Evinizin konforunda online olarak veya kurumunuzda sınıf eğitimi olarak katılabileceğiniz eğitimlerimiz hakkında detaylı bilgi almak ve eğitimlere kaydolmak için bize ulaşın:
info@bilginc.com
+90 212 282 77 00
Kapsamlı BT eğitim kataloğumuz ile Kıbrıs'ta hızla gelişen teknoloji endüstrisinin sınırsız fırsatlarını keşfetmeye hazır mısınız? Lefkoşa, Girne, Gazimağusa veya Lefke -nerede olduğunuz farketmez. Siz eğitime nerede katılmak istiyorsanız, orada dilediğiniz eğitimi organize edebiliriz. Sınıf eğitimlerimizin yanısıra evinizin konforunda, online olarak da eğitim talep edebilirsiniz. Sizin ve ekibinizin ihtiyaçlarına en uygun şekilde hazırlayacağımız eğitim ve sertifikasyon programlarıyla becerilerinizi geliştirebilirsiniz. Efektif liderlik eğitimlerinden, bulut bilişim eğitimlerine; aradığınız her eğitimi kataloğumuzda bulabilirsiniz. Kazanacağınız yeni beceriler ile, eğitim veya sertifikasyon programımızı tamamladığınızda rakiplerinizden bir adım önde olacaksınız. Uzman eğitmen kadromuzla düzenlediğimiz eğitimlerimize katılarak, Kıbrıs'taki iş piyasasında ihtiyaç duyulan beceri setlerini edinin ve kariyerinizi ileriye taşıyın. Avrupa'nın en kapsamlılarından biri olan eğitim kataloğumuza bir göz atın ve kurslarımız ve sertifika programlarımız hakkında daha fazla bilgi almak için bizimle iletişime geçin.