Kubernetes nedir?

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.

Kubernetes 101 - Temel terimler

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.

Küme

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.

Düğüm

Sanal veya fiziksel bir makinedir. Bir küme, ana düğümden ve belirli sayıda işçi düğümden oluşur.

Bulut Konteyneri

Yazılımı ve bağımlılıklarını içeren bir imajdır.

Hizmet Öbeği

Kubernetes kümenizde çalışan tek konteyner veya konteyner grubudur.

Konuşlandırma

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.

Replika kümesi

Belirli sayıda hizmet öbeği replikasının bir seferde çalışmasını sağlar.

Hizmet

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 nedir?

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ı.

Kubernetes Konteynerleri nedir?

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.

Kubernetes ve Docker

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 bileşenleri nelerdir?

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.

kubernetes nedir?

Kontrol düzlemi şunları içerir:

  • Kubernetes API sunucusu: Kubernetes'i kontrol etmek için programlama arayüzü (API) sağlar
  • etcd: Küme verileri için anahtar değer deposu
  • Kubernetes programlayıcısı: Yeni hizmet öbeklerini kullanılabilir düğümlerle eşleştirir
  • Kubernetes-controller-manager: Düğüm arızalarını yönetmek, çoğaltmayı kontrol etmek, hizmetleri ve hizmet öbeklerini uç noktalar aracılığıyla birleştirmek, hesapları ve erişim belirteçlerini kontrol etmek için çeşitli işlemler çalıştırır
  • Cloud-controller-manager: Belirli altyapı rotaları ve yük dengeleme gibi alanlarda belirli bulut sağlayıcılarının API'lerinin yönetilmesine yardımcı olur

Düğüm bileşenleri şunları içerir:

  • kubelet: Konteynerlerin bir hizmet öbeğinde çalıştmasını kontrol eden aracı
  • Kubernetes network vekil sunucusu: Ağ kurallarını korur
  • Docker, containerd veya farklı türde konteyner çalışma zamanı

Kubernetes'in avantajları nelerdir?

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 kullanımıyla ilgili zorluklar nelerdir?

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.

Yönetilen Kubernetes nedir?

Cloud Native ve Kubernetes, AgroScout'un çiftçileri destekleme yollarını dönüştürüyor.

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.


Kubernetes ekosistemi ve topluluğu

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 kullanmaya başlama

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:

  • Docker ve Kubernetes ile yerel geliştirme ortamı kurma
  • Helidon ile basit bir Java mikro hizmeti oluşturma
  • Mikro hizmeti Docker ile konteyner imajına derleme
  • Mikro hizmeti yerel bir Kubernetes kümesinde konuşlandırma
  • Mikro hizmeti kümede yukarı ve aşağı yönde ölçeklendirme

Geliştiriciler için Kubernetes

İ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.


OCI üzerinde Kubernetes'e Giriş (8:32)