Kubernetes kümesi nedir?

Kubernetes (K8s) kümesi, container'lı hâle getirilen uygulamaları çalıştıran bir bilgisayar düğümü veya çalışan makineler grubudur. Container'lı hâle getirme, bir uygulamanın kodunu, herhangi bir altyapı üzerinde çalıştırmak için ihtiyaç duyduğu tüm dosya ve kitaplıklarla paket haline getiren bir yazılım dağıtım ve çalışma zamanı işlemidir. Kubernetes, container'ları uygun ölçekte yönetebileceğiniz, koordine edebileceğiniz ve zamanlayabileceğiniz açık kaynaklı bir container düzenleme yazılımıdır. Kubernetes, container'ları pod'lara yerleştirir ve düğümlerde çalıştırır. Kubernetes kümesi en azından container pod'unu çalıştıran bir ana düğüme ve kümeyi yöneten bir denetim düzlemine sahiptir. Kubernetes'i dağıttığınızda esasen bir Kubernetes kümesi çalıştırıyorsunuz demektir.

Kubernetes ile ilgili temel bilgiler nelerdir?

Bir Kubernetes kümesini anlamak için öncelikle Kubernetes ile container'lı hâle getirme konusundaki temel bilgileri anlamanız gerekir. 

Container, bağımlılıkları ile birlikte paketlenmiş, bütün halinde bağımsız bir ortam ve uygulama olarak çalıştırılabilen tek bir uygulama veya mikro hizmettir. Modern uygulamalar, her uygulamanın bağımsız olarak çalışan yüzlerce hatta binlerce ayrı yazılım bileşeni içerdiği dağıtılmış mikro hizmetler mimarisini benimsemiştir. Her bileşen (veya mikro hizmet), kod modülerliğini geliştirmek için tek bir bağımsız işlevi yerine getirir. Her hizmet için bağımsız container'lar oluşturularak uygulamalar bir dizi makineye kurulabilir ve dağıtılabilir. Uygulama verimliliğini en üst düzeye çıkarmak için bireysel mikro hizmet iş yüklerini ve hesaplama yeteneklerini yukarı veya aşağı yönde ölçeklendirebilirsiniz.

Kubernetes, container'ların yönetimini uygun ölçekte basitleştiren açık kaynaklı container düzenleme yazılımıdır. Kubernetes, container'ları planlayabilir, çalıştırabilir, başlatıp kapatabilir ve yönetim işlevlerini otomatikleştirebilir. Geliştiriciler, idari işletim yükleri olmadan uygun ölçekte container'lı hâle getirme işleminin avantajlarından yararlanır.

Şimdi de bazı temel Kubernetes kavramlarına bakalım.

Pod

Pod, Kubernetes altındaki standart dağıtılabilir birimdir. Pod'lar bir veya daha fazla container içerir ve pod içinde, container'lar depolama ve ağ oluşturma gibi aynı sistem kaynaklarını paylaşır. Her pod benzersiz bir IP adresi alır. 

Bir pod içindeki container'lar izole değildir. Sanal makinede çalışan uygulamalara benzer container'ların olduğu, sanal makineye (VM) benzeyen bir pod düşünün. Pod'lar ve pod grupları, ortam türü için 'dev' veya 'prod' etiketleri gibi öznitelik etiketleri eklenerek düzenlenebilir. 

Düğüm

Düğüm, pod'ları çalıştıran bir makinedir. Amazon EC2 bulut sunucusu gibi fiziksel veya sanal bir sunucu olabilir. Bir düğümdeki bileşenler şunları içerir:

  • Düğüm ve container yönetimi için Kubelet
  • Ağ proxy'si için Kube-proxy
  • Container çalışma zamanı

Container'ları çalıştırmak için uyumlu bir container çalışma zamanı düğüme yüklenmelidir. Kubernetes, Kubernetes Container Çalışma Zamanı Arabirimi ve container gibi çeşitli container çalışma zamanlarını destekler. 

Replika kümesi ve dağıtımı

Bir pod bağımsız bir yapıttır ve düğümü çöktüğünde otomatik olarak yeniden başlatılmaz. Pod veya pod'lar, bir kopya kümesinde gruplandırılmışsa Kubernetes'te, her zaman düğümler arasında çalışacak olan çoğaltma kümeleri belirleyebilirsiniz. Bu, uygulamaların ve hizmetlerin ölçeğinin artırılması ve düşürülmesi ve bunların sürekliliğinin sağlanması açısından kritik öneme sahiptir. 

Dağıtım, bir uygulamayı dağıtmanın yanı sıra uygulamayı çevrimdışı hâle getirmeden güncellemek veya geri almak için kullanılan Kubernetes yönetim nesnesidir.

Hizmet ve giriş

Standart ağ iletişim kurallarını izleyen etkileşim için ağdaki bir pod'u veya pod grubunu bir uç nokta aracılığıyla kullanıma sunmak üzere bir Kubernetes hizmeti kullanın. Genel internet trafiği erişimi için Kubernetes girişi bir hizmete eklenir ve daha sonra pod'a veya pod'lara bağlanır.

Kubernetes küme bileşenleri nelerdir?

Kubernetes kümesi, çalışan pod'lara sahip bir veya daha fazla düğümden oluşan bir gruptur. Küme içinde, Kubernetes denetim düzlemi düğümleri ve pod'ları yönetir.

Denetim düzlemi bileşenleri şunları içerir:

  • Küme içindeki ve küme ile iletişimi yöneten Kubernetes API sunucusu (kube-apiserver)
  • Kümenin kalıcı durumunu kaydetmek için depolama (etcd)
    Düğümü ve sonraki pod Kubernetes kaynaklarını yönetmek için zamanlayıcı (kube-scheduler) 

Diğer bileşenler arasında düğüm ve iş denetimi için bir denetleyici yöneticisi (kube-controller-manager) ve sağlayıcıya özel genel bulut altyapısıyla entegrasyon için bir bulut denetleyici yöneticisi (cloud-controller-manager) bulunur.

Container'lar kalıcı depolama alanına sahip olmadığından, uygulamaların devam eden verileri depolaması gerekir. Pod'lar ayrıca paylaşılan verilere erişim gerektirebilir. Kalıcı birimler bir kümeye depolama alanı olarak eklenebilir ve buna küme içinde bir düğüme benzer şekilde başvurulur.

Geliştiriciler Kubernetes kümesiyle nasıl çalışır?

Geliştiriciler önce Kubernetes'i bir ana düğüme ve çalışan düğümlerine indirmeli ve yüklemelidir. Daha sonra kümeyi fiziksel veya sanal makinelerde, yerel olarak, bir veri merkezinde veya bulutta dağıtabilirler.

Kurulum

Linux sanal makinelerinde basit bir başlangıç için önce seçtiğiniz ana düğüme (sanal makine) yükleyin:

  • Docker veya başka bir container'lı hâle getirme yazılımı.
  • Kubernetes depo anahtarı ve kod deposu.
  • Küme ön yükleme için kubeadm paketi.
  • Düğüm koordinasyonu için kubelet paketi.
  • Küme komut satırı için kubectl paketi.

İşlemi diğer belirlenen çalışan düğümlerinin her birinde gerçekleştirin.

Küme başlatma

Bir kümeyi başlatmak için ana düğümde kubeadm init komutunu çalıştırın. Küme çalışmaya hazır olmadan önce bir kube yapılandırma dosyası eklemeniz ve genellikle bir YAML dosyasıyla pod ağını dağıtmanız gerekir. kubeadm init komutu, kopyalanıp diğer sanal makine çalışan düğümlerinin komut satırlarına yapıştırılabilen bir "join" komutu çıkarır. Bu da her çalışan düğümünün kümeye katılmasına izin verir. 

Kubernetes ile çalışma

Kubernetes kullanıcı arabirimi panosu ile dağıtıcılar kümede uygulamalar oluşturabilir ve dağıtabilir. Bir Kubernetes kullanıcı arabirimi panosu için ana makinede kubectl proxy komutunu çalıştırın. Kullanıcı arabirimi daha sonra http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ adresinde erişilebilir olacaktır.

Kubernetes küme yönetimi nedir?

Kubernetes küme yönetimi, birden fazla Kubernetes kümesini uygun ölçekte yönetmek için kullanılan bir terimdir. Örneğin bir geliştirme ortamını düşünün; ekip, her biri birden çok dağıtılmış, yerinde ve bulut tabanlı fiziksel ve sanal makinede çalışan test, geliştirme ve üretim kümelerini isteyebilir.

Birden çok farklı küme türünü birlikte yönetmek için, oluşturma ve yok etme, yerinde güncellemeler, bakım, yeniden yapılandırma, güvenlik, küme veri raporlaması gibi küme işlemlerini gerçekleştirebilmeniz gerekir. Çoklu küme yönetimi, Kubernetes hizmetleri, özel araçlar, yapılandırmalar ve en iyi uygulamaların bir kombinasyonu ile gerçekleştirilebilir.

AWS, Kubernetes küme gereksinimlerinizde nasıl yardımcı olabilir?

AWS, Kubernetes kümelerinizi yapılandırmak, çalıştırmak ve yönetmek için bulut hizmetleri sağlar: 

  • Amazon Esnek İşlem Bulutu (EC2), seçtiğiniz bulut sunucusu türlerinde Kubernetes hazırlamanıza ve çalıştırmanıza yardımcı olur.
  • Amazon Esnek Kubernetes Hizmeti (EKS), bir denetim düzlemi ve etcd ile ana bulut sunucuları sağlamanıza veya yönetmenize gerek kalmadan Kubernetes'i başlatmanıza, çalıştırmanıza ve ölçeklendirmenize yardımcı olur. EKS, küme yönetimi araçları ve AWS ağ oluşturma ve güvenlik hizmetleriyle kullanışlı entegrasyonlarla birlikte gelir.

Hemen ücretsiz bir hesap oluşturarak AWS'de Kubernetes kümelerini kullanmaya başlayın.

AWS'de Sonraki Adımlar

Ücretsiz bir hesap için kaydolun

AWS Ücretsiz Kullanım için anında erişim elde edin.

Kaydolun 
Konsolda oluşturmaya başlayın

AWS Yönetim Konsolu'nda oluşturmaya başlayın.

Oturum açın