14.08.2023

Kubernetes nedir?

Uygulama dağıtım süreçleri son yıllarda önemli ölçüde değişti ve uygulama konteynerleştirme uygulaması yaygınlaştı. Bu, uygulamalar ve bağımlılıkları için neredeyse her çalışma zamanı ortamında dağıtılabilen ve yürütülebilen izole konteynerlere paketleme yöntemidir. Popüler bir konteyner düzenleme platformu olan Kubernetes, konteynerli uygulamaların dağıtımını, ölçeklendirilmesini ve yönetimini otomatikleştirmek için araçlar sağlayarak bu işlemler için gereken karmaşıklığı ve çabayı azaltır.

K8S. Basit anlamda nedir

Kubernetes (k8s), Google ekibi tarafından geliştirilen konteynerli uygulamaların dağıtımını, ölçeklendirilmesini ve yönetimini otomatikleştirmek için açık, genişletilebilir bir platformdur. Dağıtılmış ortamlardaki uygulamalarla kapsayıcıları verimli bir şekilde yönetmek için bir dizi özellik ve araç sağlar.

K8'in temel avantajları:

K8S tarihçesi

Kubernetes'in tarihi, Google'ın ölçeklenebilir uygulamaları şirket içinde yönetmek için bir sistem geliştirme projesiyle başladı. Google, 2003 yılında şirket genelinde dağıtılmış uygulamalarını ve kaynaklarını yönetmek için Borg adlı bir sistem kullanmaya başladı. Borg otomatik dağıtım, ölçeklendirme, izleme ve kaynak yönetimi sağlıyordu.

2014 yılında Google mühendisleri, Borg'un deneyim ve ilkelerine dayanan bir konteyner yönetim sisteminin açık ve erişilebilir bir versiyonunu oluşturmaya karar verdiler. Kubernetes adında bir proje geliştirmeye başladılar. Google, konteynerizasyon ve uygulama düzenlemenin modern uygulamalar geliştirmenin ve yönetmenin önemli parçaları olduğuna inanıyordu ve bilgilerini ve araçlarını daha geniş geliştirici topluluğuyla paylaşmaya karar verdi.

Google, Kubernetes'in ilk halka açık sürümünü Haziran 2014'te duyurdu. Platform açık kaynak olarak yayınlandı ve bulut teknolojilerinin ve projelerinin geliştirilmesini destekleyen bir kuruluş olan Cloud Native Computing Foundation'a (CNCF) devredildi. Yayınlanmasından bu yana Kubernetes yaygın bir destek aldı ve geliştirici topluluğundan ve sektörden büyük ilgi gördü. Konteynerli uygulamaları yönetmek için fiili standart haline geldi. Ve şimdi CNCF'de en aktif olarak gelişen projelerden biri.

Kubernetes günümüzde gelişmeye devam ediyor. Uygulamalarını farklı altyapılarda yönetmek için onu kullanan şirket ve kuruluşların sayısı her geçen gün artıyor. Kubernetes, Serverspace gibi bulut sağlayıcıları ve şirket içi ortamlar da dahil olmak üzere çeşitli platformlarda uygulamaları dağıtmak, ölçeklendirmek ve yönetmek için güçlü araçlar sağlar.

k8s son yıllarda önemli değişiklikler ve gelişmeler geçirdi ve artık modern Devops ve bulut uygulama geliştirmenin ayrılmaz bir parçası. Yeni özellikler ve iyileştirmeler içeren çok sayıda yeni sürüm çıktı. Dünyanın dört bir yanındaki şirketler ve kuruluşlar, konteyner uygulamalarını yönetmek için Kubernetes'i aktif olarak kullanıyor. Platformun etrafındaki ekosistem sürekli büyüyor.

Kubernetes mimarisi

1. Ana Düğüm veya Kontrol Düzlemi Düğümü. Bir k8s kümesini yönetmek ve idare etmek için önemli görevlerin çoğu burada gerçekleştirilir. Dört ana bileşenden oluşur:

2. Düğümler, konteynerlerin üzerinde çalıştığı ve işletildiği fiziksel veya sanal makineleri ifade etmek için kullanılır. Her düğüm bir Kubernetes kümesindeki bir İşçi Düğümünü temsil eder. Düğüm, konteynerler için yürütme ortamıdır ve konteynerlerdeki uygulamaları yürütmek için kaynaklar ve olanaklar sağlar. Düğüm, bu düğümdeki kapsayıcıların ve podların yaşam döngüsünü yöneten Kubelet adlı bir Kubernetes aracısı çalıştırır.

Her düğümün kendi bilgi işlem kaynakları (CPU, bellek, depolama) ve ağ arayüzleri vardır. Düğümler, küme durumu hakkında bilgi alışverişinde bulunmak ve konteynerleri yerleştirmek ve yönetmek için komutlar almak üzere ağ üzerinden Ana Düğümlere bağlanır.

3. Podlar, bir veya daha fazla konteyneri bir araya getiren ve onlara izole bir çalışma zamanı ortamı sağlayan temel ve minimal bir dağıtılabilir birimdir. Podlar, Kubernetes'te konteynerleri barındırmak ve yönetmek için temel yapı taşıdır.

4. Hizmetler: Bir grup pod'a kalıcı bir erişim noktası ve bunlar arasında yük dengeleme sağlayan bir soyutlama.

5. İsteğe bağlı bileşenler:

Kubernetes görevleri

Konteyner yönetim sistemi, konteyner yönetimiyle ilgili bir dizi önemli görevi yerine getirir:

Kubernetes kurulum süreci

Kubernetes hizmetini Serverspace kontrol panelinde sürümü, küme konumunu seçerek ve CPU, RAM ve düğüm sayısını yapılandırarak sipariş edebilirsiniz. Panelde Dashboard'u da bağlayabilirsiniz. Ama çalışmaya nasıl başlanır?

Kontrol panelimiz aracılığıyla kümeler oluşturabilir ve silebilir, yapılandırmalarını değiştirebilir ve düğüm ekleyip kaldırabilirsiniz. Diğer görevler için, kümelerle çalışmak üzere özel olarak tasarlanmış komut satırı araçlarına ihtiyacınız olacaktır.

kubectl bir Kubernetes komut yardımcı programıdır. Bununla Kubernetes kümelerinizle etkileşim kurmak için çeşitli komutlar çalıştırabilirsiniz. Kubectl, uygulamaları dağıtma, küme kaynaklarını izleme ve yönetme ve günlükleri görüntüleme olanağı sağlar. Kubectl özelliklerinin tam listesi için Kubernetes web sitesinde bulunan resmi belgelere bakın.

Şimdi Ubuntu üzerinde yardımcı program kurulumuna bakalım. Öncelikle aşağıdaki komutu kullanmanız gerekiyor:

sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl

Komut satırından bir Kubernetes kümesine bağlanmak için kimlik doğrulama sertifikalarını ve diğer bağlantı bilgilerini içeren bir yapılandırma dosyasına ihtiyacınız olacaktır. Dosyayı bilgisayarınıza veya sunucunuza indirmek ve içe aktarmak için aşağıdaki adımları izleyin.

Yapılandırma dosyasını bilgisayarınıza veya sunucunuza indirin:

export KUBECONFIG=dosya yolu

Şimdi kümeye bağlanmanız gerekir.
Kümeye bağlantıyı kontrol etmek için küme durum bilgisini alın:

kubectl cluster-info

Başarılı bir bağlantı, Kontrol Düzleminin çalıştığı adresle sonuçlanacaktır:

Kubernetes control plane is running at https://XXX.XXX.XXX.XXX:YYY

Küme sorunlarını daha fazla ayıklamak ve teşhis etmek için 'kubectl cluster-info dump' kullanın.

Eğer kubectl doğru yapılandırılmamışsa veya Kubernetes kümesine bağlanamıyorsa, konsolda aşağıdaki mesaj görünecektir:

"xxx.xxx.xxx.xxx:yyy" sunucusuna bağlantı reddedildi - doğru ana bilgisayarı veya bağlantı noktasını belirttiniz mi?

Bağlantı hatalarını teşhis etmek için ayrıntılı bilgi çıktısı veren aşağıdaki komutu kullanın:

kubectl cluster-info dump

Kubectl ile çalışmak ve temel Kubernetes komutlarına aşina olmak için Kubernetes cheat sheet'i kullanabilirsiniz.