Kubernetes Mimarisi: 2022'de Bilmeniz Gereken Her Şey
Yayınlanan: 2021-01-05İçindekiler
Kubernet'ler hakkında
Kubernetes, kaynak maksimizasyonu, otomatik dağıtım süreci ve güncelleme, otomatik ölçeklendirme, kendi kendini iyileştirme, otomatik geri alma ve kullanıma sunma ve konteyner düzenleyicileri yük dengeleme ve hizmet keşfi, otomatik yeniden başlatma, otomatik yerleştirme gibi özelliklere sahip açık kaynaklı bir platformdur. ve otomatik çoğaltma vb. Kubernetes yalnızca bir kapsayıcı düzenleyici değildir; aynı zamanda bulut tabanlı uygulamalar için bir işletim sistemidir.
Windows, MacOS veya Linux üzerinde daha fazla esneklikle çalışan diğer uygulamalara benzer bir uygulamayı çalıştırmak için bir platform gibidir. Düzenleme yükünü azaltır ve geliştiricilerin self servis operasyon amacıyla tamamen konteyner merkezli iş akışlarına odaklanmasına olanak tanır. Geliştiriciler, dağıtım ve uygulama yönetiminde çok yüksek düzeyde bir otomasyon avantajına sahiptir. Yetenekleri geliştirmek için herhangi bir ortamla entegre edilebilir.
Okuyun: Hindistan'da Kubernetes Maaşı
Kubernetes Mimarisi
Kubernetes mimarisi katmanlardan oluşur: Üst ve alt katmanlar. Bu bireyde, fiziksel veya sanal makineler bir kümede bir araya getirilir. Her sunucu arasında iletişim için paylaşılan bir ağ kullanılır. Kubernetes, bir kontrol düzlemi, dağıtılmış bir depolama sistemi olarak işlev gören (en azından) bir ana bilgisayara sahiptir. Birden çok küme düğümü, Kubelets olarak da bilinir.
- Kubernetes'in yöneticisi, kontrol düzlemi, dağıtımları planlar, API'yi ortaya çıkarır ve genel Kubernetes kümesini yönetir.
- Küme düğümü, bir kapsayıcı çalışma zamanı, ana ile iletişim için aracı ve diğer izleme bileşenleri, günlük kaydı vb. çalıştırır.
Kubernetes mimarisi ve Kubernetes bileşenleri aşağıdaki resimde gösterilmektedir.
Kaynak

Kubernetes bileşenlerine bir göz atalım .
Kubernetes Bileşenleri
Usta: Kubernetes Kontrol Düzlemi
Master, Kubernetes'teki her nesnenin verilerini tutar. Tüm kümeyi yönettiği için Master olarak adlandırılır. Nesne durumlarını kontrol eder, sistemin gerçek durumunun gerekli durumla eşleşmesini sağlar, değişikliklere yanıt verir, vb.
Aşağıdaki üç önemli bileşeni içerir:
- Kube- API sunucusu: Kubernetes API sunucusu
- Kube- Zamanlayıcı: Çalışan düğümlerinde Pod zamanlaması
- Kube- Controller: pod replikasyonunu yönetir
Birden çok ana düğüm varsa, bu bileşenler tüm ana düğümlerde çoğaltılır.
Güncellemeleri, ölçeklemeyi vb. içeren çeşitli uygulamalar için yaşam döngüsü düzenlemesi API Sunucusu tarafından yapılır. Küme içinde olmayan istemciler için bir ağ geçidi olarak çalışır. API sunucusu kimlik doğrulamasını yapar. Ayrıca bölmeler ve düğümler için bir aracı görevi görür.
Denetleyici aşağıdaki görevleri gerçekleştirir:
- Çekirdek kontrol döngülerini çalıştırma
- Gerekli duruma doğru sürüş durumu için değişiklikler yapmak.
- Küme durumunu izleme
Ayrıca genel bulutlara entegre olarak yönlendirme, depolama hizmetleri, yük dengeleme, DNS ağ hizmetleri, VM örnekleri sunar. Otomatik ölçeklendirme, düğümler, hizmetler ve bölmeler, ad alanları için durumu yöneten farklı denetleyiciler.
Düğümler boyunca kapsayıcı planlaması, küme içindeki Zamanlayıcı tarafından yapılır; farklı kaynak sınırlamalarını/garantilerini veya yakınlık karşıtı/benzerlik özelliklerini dikkate alarak.
Kubernetes Kontrol Düzlemi sınıflandırması aşağıda gösterilmiştir:
Kaynak
Küme Düğümleri: Kubelets
Kubelets, konteynerleri çalıştırmaktan sorumlu farklı makinelerdir. Master, küme düğümlerinin yönetimini yapar. Minion da denir. Küme düğümleri, Kubernetes'in birincil denetleyicisi olarak kabul edilir. Konteynerlerin yürütme katmanı olan Docker'ı çalıştırır.
Aşağıdaki bileşenleri içerir:
- Pod: Konteyner grubu
- Docker: Konteyner tabanlı teknoloji, işletim sisteminin kullanıcı alanı
- Kubelet: Kapsül kümesinin bakımından sorumlu olan kapsayıcı aracıları.
- Kube-proxy: Hizmetten bir düğüme gelen trafiği yönlendirir.
Kubernetes Küme Düğümü sınıflandırması aşağıda gösterilmiştir:
Kaynak
Kapsüller ve Hizmetler
Pod'lar, Kubernetes'te geliştiricilerin etkileşimde bulunduğu önemli bir kavramdır. Çalışan süreci temsil eder. WordPress LAMP uygulamaları gibi dikey olarak entegre edilmiş uygulama yığınlarını barındırabilir. Aşağıda verilen farklı pod türleridir:
Kapsül Tipi | işlevsellik |
Çoğaltma Kümesi | Basit Kapsül tipi![]() Sabit podların çalışmasını sağlar |
dağıtım | ReplicaSet aracılığıyla bildirimsel bir şekilde pod yönetimi Geri alma güncellemeleri ve geri alma mekanizmaları dahildir. |
Durumsal Küme | Kalıcı olması gereken bölmeleri yönetir |
Daemonset | Her düğümün bir pod örneği çalıştırmasını sağlar. Günlük iletme ve sistem durumu izleme gibi küme hizmetlerini yönetir. |
CronJob ve İş | Zamanlayıcı olarak kısa ömürlü işleri çalıştırır |
Bir bölme, bir dizi kap ve harici birimden oluşabilir. Pod taksonomisi aşağıdaki şemada gösterilmiştir:
Kaynak
Servisler, Pod'ların takibini yapar. Pod ve hizmet ilişkilerini tanımlamak için IP adresi atamaları yerine seçiciler veya etiketler kullanılır. Bu, hizmete bölmelerin eklenmesini ve yeni sürümlerin yayınlanmasını basitleştirir. Aşağıda farklı hizmet türleri verilmiştir:
servis tipi | işlevsellik |
ClusterIP | Varsayılan Tür; Hizmeti dahili bir IP'de gösterir ve hizmeti erişilebilir kılar |
Düğüm Bağlantı Noktası | Geliştiricilerin kendi yük dengeleyicilerini kurmalarına olanak tanır |
Yük dengeleyici | Yapılandırmalarını otomatikleştirir |
HariciAd | Genellikle Kubernetes içinde hizmet oluşturmak için kullanılır. |
Kullanılan tipik bulut dağıtımı, LoadBalancer türüdür. Kubernetes, karmaşıklığı çözmek için üst düzey Girişin soyutlamasını destekler. Kullanıcılar aynı yük dengeleyicileri kullanarak aynı IP adresi içerisinde farklı servisleri görüntüleyebilirler.
Devamını oku: Openshift ve Kubernetes: Openshift ve Kubernetes Arasındaki Fark
Kubernetes Ağı
Temel ağı gizlemek için çoğunlukla CNI (Konteyner Ağı Arayüzü) kullanılır. Tam yönlendirilmiş bir seçenek olan Calico da kullanılabilir. Her iki seçenekte de iletişim, küme çapında bir pod ağı üzerinde yapılır ve Calico veya Flannel (CNI sağlayıcısı) tarafından kontrol edilir. Konteynerler, herhangi bir kısıtlama olmaksızın localhost üzerinden bir pod içinde iletişim kurabilir. Dış kaynaklardan hizmetlere veya podlardan hizmetlere geçiş Kube-proxy üzerinden yapılır.
Kalıcı Depolama
Bazı verilere sahip bir dizine Kubernetes'te Birimler denir. Dizinlere bölmeler erişilebilir. Kubernetes'te birçok depolama türü vardır. Pod içindeki kaplar herhangi bir depolamayı tüketebilir. NFS, Amazon Elastic Block Store, Iscsi, CephFS vb. gibi genel bulut hizmetleri, dosyaları ve blok depolamayı bir bölmeye monte etmek için kullanılır. PV'ler (PersistentVolumes), mevcut depolama kaynaklarına bağlı küme çapında nesnelerdir.
Bir ad alanı içinde, bir depolama tüketimi talebi PersistentVolumeClaim tarafından başlatılır. PV'nin farklı durumları mevcuttur, bağlı, serbest bırakılmış ve başarısız olmuştur. StorageClasses, soyutlama katmanıdır. Temel depolama kalitesini farklılaştırır ve çeşitli özellikleri birbirinden ayırır. Pod, StorageClasses ve PersistentVolumeClaim yardımıyla dinamik olarak yeni depolama talep edebilir.
Kaynak
Keşfetme ve Yayınlama Hizmetleri
Kümenin sürümüne bağlı olarak Kubernetes, hizmetleri keşfetmek için Kube-DNS veya CoreDNS'ye bağlıdır. Bu entegre DNS hizmetleri, DNS kayıtlarını oluşturur, günceller ve kaldırır. Tutarlı ve basit bir adlandırma şeması aracılığıyla uygulamaların diğer bölmeleri ve hizmetleri hedeflemesine yardımcı olur.
Örnek ( Kaynak )
Bir Kubernetes hizmeti için DNS kaydı service.namespace.svc.cluster.local olabilir.
DNS kaydı, bir bölmede şunlar olabilir: 10.32.0.125.namespace.pod.cluster.local
Kaynak
Ad alanları
Sanal kümeleri içeren Fiziksel kümeye Ad Alanları denir. Kubernetes nesneleri için ilgili erişim haklarıyla birlikte birden çok kullanıcıya ayrı bir sanal ortam sağlar.
Etiketler
Etiketler, tek bir ad alanında bulunan kaynakları ayırt etmek için kullanılır. Nitelikler, anahtar veya değer çiftleriyle tanımlanır. Etiketler, organizasyon yapılarını Kubernetes nesneleri üzerinde eşlemek için kullanılır. Ortamı, yayın durumunu, uygulama katmanını veya müşterilerin kimliğini tanımlayabilir. Nesnelerin sabit bağlanmasını önler.
Ek açıklamalar
Ek açıklamalar, nesnelere rastgele tanımlanamayan bagaj veya meta veriler eklemek için kullanılır. Bildirimsel bir yapılandırma aracı olarak kullanılır.

Okumalısınız: Kubernetes Vs. Docker: Bilmeniz Gereken Temel Farklılıklar
Dünyanın en iyi Üniversitelerinden Yazılım Mühendisliği dereceleri alın . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
Çözüm
Kubernetes teknolojisi hızla gelişiyor ve gelecek için uygun maliyetli bir çözüm. Uygulamalara büyük bir kararlılık sunar.
Kubernetes mimarisinin tüm temel kavramları ve Kubernetes bileşenleri bu makalede açıklanmaktadır.
Kubernetes, büyük veri hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500+ saatlik zorlu eğitim, 9+ proje ve Full-stack Yazılım Geliştirmede Yönetici PG Programına göz atın. atamalar, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.
