Sıkça "buluta yönelik işletim sistemi" olarak tanımlanan Kubernetes, konteynere alınmış uygulama ve hizmet kümelerini yönetmek amacıyla tasarlanmış, açık kaynaklı bir platformdur. Google mühendisleri Joe Beda, Brendan Burns ve Craig McLuckie tarafından 2014 yılında geliştirilip kısa süre sonra açık kaynaklı hale getirilen Kubernetes, canlı bir bulut yerel ekosistemine dönüştü. Eski Yunancada "dümenci" veya "sürücü" anlamına gelen Kubernetes, günümüzde Linux Vakfı'nın bir kolu olan Cloud Native Computing Foundation (CNCF) tarafından yönetiliyor.
Kubernetes, CNCF'in olgunluğa ulaşan ilk projesi. Ve tarihteki en hızlı büyüyen açık kaynaklı projelerden birine dönüştü. Kubernetes projesine 2.300'ün üzerinde kişi katkıda bulundu ve bu proje, Fortune 100'ün yarısı dahil olmak üzere büyük ve küçük ölçekli pek çok şirket tarafından yaygın olarak benimsendi.
Başlarken, Kubernetes ile ilgili birkaç temel terimi ele alalım. Kubernetes Standart Sözlük sayfasında daha kapsamlı bir liste bulunmaktadır. Yaygın kullanılan kubectl komutlarının ve bayraklarının listesini içeren Kubernetes Hızlı Başvuru Belgesi'nden de yararlanabilirsiniz.
Kubernetes tarafından yönetilen, konteynere alınmış uygulamaları çalıştırmak için kullanılan ve her birine düğüm denen bir dizi makine.
Sanal veya fiziksel bir makinedir. Bir küme, ana düğümden ve belirli sayıda işçi düğümden oluşur.
Yazılımı ve bağımlılıklarını içeren bir imajdır.
Kubernetes kümenizde çalışan tek konteyner veya konteyner grubudur.
Hizmet öbekleri tarafından temsil edilen, çoğaltılmış uygulamaları yöneten bir nesnedir. Hizmet öbekleri, bir kümenin düğümlerine konuşlandırılır.
Belirli sayıda hizmet öbeği replikasının bir seferde çalışmasını sağlar.
Bir dizi hizmet öbeği tarafından temsil edilen uygulamalara nasıl erişileceğini açıklar. Hizmetler genellikle bağlantı noktalarını ve yük dengeleyicileri tanımlar, bir kümeye iç ve dış erişimi kontrol etmek için kullanılabilir.
KubeCon, Kubernetes geliştiricileri ve kullanıcılarına yönelik yıllık konferanstır. 2015 yılında 500 katılımcı ile yapılan ilk KubeCon'dan bu yana, KubeCon bulut yerel topluluğu için önemli bir etkinlik haline geldi. 2019 yılında; San Diego, California'da düzenlenen KubeCon'a 12.000 geliştirici ve site güvenilirliği mühendis katılarak Kubernetes bulut orkestrasyon platformu çevresinde gelişen açık kaynak ekosistemini kutladı.
Geliştiriciler; farklı bulutlar, test ortamları, dizüstü bilgisayarlar, cihazlar, işletim sistemleri ve platformlar içeren çok çeşitli bir dizi bilişim ortamı için giderek daha fazla yazılım konuşlandırıyor. Yazılımın güvenilir biçimde çalışması konusu kritik öneme sahip. Konteynerler burada devreye giriyor: Bir uygulamayı çalışma zamanı ortamının tamamıyla birlikte paketliyorlar. Bu anlamda konteynerler bir sanallaştırma biçimidir. Çünkü uygulamanın doğru kitaplıklar, bağımlılıklar ve işletim sistemlerini içererek çalışabileceği bir "baloncuk" sağlarlar. Ancak konteynerler sadece uygulamanın gerek duyduğu kaynakları içerdiği için sanal makinelerden daha küçüktür.
Linux konteynerleri 2008'den beri mevcut olsa da, ancak 2013'te Docker konteynerlerinin ortaya çıkmasıyla ün kazandılar. Benzer şekilde, çalışmak için ihtiyaç duydukları her şeyi içeren konteynerlere alınmış uygulamaları konuşlandırmaya duyulan ilginin patlama yapması, en nihayetinde yeni bir sorun doğurdu: binlerce konteyneri yönetmek. Kubernetes, konteyner yaşam döngüsünü otomatik olarak düzenler, konteynerlerin barındırma altyapısında dağıtılmasını sağlar. Kubernetes, talebe bağlı olarak kaynakları yukarı ve aşağı yönde ölçeklendirir. Konteynerleri kullanıma açar, takvimlerini programlar, bunları siler ve sağlıklarını izler.
Kubernetes'in en önemli bileşenleri kümeler, düğümler ve kontrol düzlemidir. Kümeler düğümleri içerir. Her düğüm en az bir adet işçi makine kümesinden oluşur. Düğümler, konuşlandırılan uygulamanın unsurlarını içeren hizmet öbeklerini barındırır. Kontrol düzlemi, yüksek erişilebilirlik için genellikle çok sayıda bilgisayarda bulunan düğüm ve hizmet öbeklerini yönetir.
Kontrol düzlemi şunları içerir:
Düğüm bileşenleri şunları içerir:
Konteynerler ile uygulamalarınızın çalışmak için ihtiyaç duydukları her şeyle paketlendiğinden emin olabilirsiniz. Ama genellikle mikro hizmetler içeren konteynerler ekledikçe, bunları Kubernetes kullanarak otomatik olarak yönetebilir ve dağıtabilirsiniz.
Kubernetes sayesinde kuruluşlar şunları yapabilir:
Otomatik ölçeklendirme | Talebe bağlı olarak konuşlandırma sayısını artırma veya azaltma. |
Hizmetleri keşfetme | DNS veya IP adresi aracılığıyla konteynere alınmış hizmetler bulma. |
Yükleri dengeleme | Ağ trafiğini dağıtarak konuşlandırmayı kararlı hale getirme. |
Depolamayı yönetme | Yerel veya bulutta depolamayı seçme. |
Sürümleri kontrol etme | Yeni imaj veya konteyner kaynakları kullanarak çalıştırmak istediğiniz konteyner türlerini ve hangi konteynerlerin değiştirileceğini seçin. |
Güvenliği koruma | Belirli konteyner imajlarıyla ilgili parolaları, OAuth belirteçlerini ve SSH anahtarlarını güvenle güncelleme. |
Kubernetes son derece farklı şekillerde düzenlenerek her tür uygulamayı destekleyebilse de onu anlamak ve kullanmak zor olabilir. Kimi CNCF üyelerinin de belirttiği gibi Kubernetes, her iş yükü için her zaman doğru çözüm değildir. Kubernetes ekosistemi bu nedenle kuruluşların belirli iş yükü sorunlarını çözmek için yarattıkları, birbiriyle ilişkili bir dizi bulut yerel araç içerir.
Kubernetes, kaynak kodu değil konteynerleri konuşlandırır ve uygulamaları derlemez. Günlük kaydı, orta katman yazılım, izleme, konfigürasyon, CI/CD ve diğer birçok üretim faaliyeti için ek araçlara ihtiyaç duyarsınız. Bununla birlikte, Kubernetes genişletilebilir ve jet uçaklarından makine öğrenimine kadar çok çeşitli kullanım senaryolarına uyum gösterebildiği kanıtlanmıştır. Doğrusu; Oracle, Google, Amazon Web Services ve diğer bulut tedarikçileri, Kubernetes’in genişletilebilirliğini kullanarak, karmaşıklığı azaltan ve geliştirici üretkenliğini artıran, yönetilen Kubernetes çözümünü oluşturdu.
Our Cloud Infrastructure Container Engine for Kubernetes konteynere alınmış uygulamalarınızı bulutta konuşlandırmak için kullanabileceğiniz, geliştirici dostu ve yönetilen bir hizmettir. Geliştirme ekibiniz bulut yerel uygulamaları güvenile oluşturmak, konuşlandırmak ve yönetmek istediğinde Container Engine for Kubernetes kullanın. Uygulamalarınızın ihtiyaç duyduğu bilişim kaynaklarını belirlersiniz. Container Engine for Kubernetes bunları mevcut bir Bulut Altyapısı kullanıcısında kullanıma açar.
Yönetilen bir Kubernetes hizmeti kullanmanız zorunlu olmasa da, Cloud Infrastructure Container Engine for Kubernetes çözümümüz, Oracle Cloud Infrastructure'ın kontrol, güvenlik ve öngörülebilir performansı ile yüksek düzeyde erişilebilir kümeler çalıştırmanın kolay bir yoludur. Container Engine for Kubernetes hem yalın donanımları hem de sanal makineleri düğüm olarak destekler ve CNCF'den uyumluluk sertifikası almıştır. Ayrıca hiç ek çaba harcamadan tüm Kubernetes güncellemelerini alır ve CNCF ekosistemiyle uyumlu kalmaya devam edersiniz.
Oracle, olgunluk düzeylerine göre organize edilen düzinelerce yazılım geliştirme projesini destekleyen açık kaynak topluluğu Cloud Native Computing Foundation'ın (CNCF) Platin üyesidir. Tamamlanan projelerin (Kubernetes, Prometheus, Envoy, CoreDNS, containerd, Fluentd, Jaeger, Vitess, TUF ve Helm) tamamı, bulut yerel geliştirmede paha biçilemez unsurlar olduklarını kanıtladılar.
Kubernetes, kendi çevresinde gelişen projeleri destekleyen geniş bir ekosisteme sahip. Bu yazılım ortamı insanın gözünü korkutabilir ve basit sorulara yanıt ararken hiç düşünmediğiniz ayrıntılara girmek zorunda kalabilirsiniz. Ancak bu yolun ilk birkaç adımı kolaydır ve bunları tamamladıktan sonra gelişmiş kavramları gereksinimleriniz doğrultusunda keşfedebilirsiniz. Şunları nasıl yapacağınızı öğrenin:
İlk Kubernetes projesini başlatmaya hevesli olan geliştiriciler, geliştirici portalımızı ziyaret ederek ilk Arm uygulamalarını Kubernetes'te nasıl oluşturacaklarını veya bulut kabuğu kullanarak Kubernetes kümesi konuşlandırmayı öğrenebilir.