Haberler

Kenar Bilişimde Küme Hesaplama – Nedir, Neden ve Nasıl Başlanır

Küme bilişimi, yüksek iş yüklerini ele almak ve belirli uygulamaları dağıtmak için güçlü bir bilişim paradigmasıdır – peki ya bunu Edge Computing’de uygularsak? Bugün bu makalede, kenar bilişimdeki küme bilişiminin temellerine, faydalarına ve bunu çeşitli projelerinizde nasıl kullanabileceğinize dalacağız!

Bu makalede, aşağıdakiler ve daha fazlasını ele alacağız.

  • Kenar Bilişimde Küme Bilişimi Nedir?
  • Kümeleme Gerçekten Nasıl Çalışır?
  • Kümelemenin Kullanımları ve Faydaları Nelerdir?
  • Kenar Bilişimi için Donanım Önerileri
  • Kenar Bilişimde Küme Bilişimi Örnekleri, Projeleri ve Kullanım Durumları

Kenar Bilişimde Küme Bilişimi Nedir?

Küme Bilişimi dediğimizde, aklınıza gelebilecek ilk şey, raflarda sıralanmış dev bilgisayarlar ve yoğun bilişim görevlerini durmaksızın yerine getiren bir sistemdir. Ve haklısınız! Tanım gereği, bilgisayar kümeleri birlikte çalışan bilgisayar gruplarıdır ve bu sayede tek bir sistem olarak görülebilirler.

Kaynak: EasyTechJunkie

Ancak, bugünkü makale Küme Bilişimi Kenar Bilişimde hakkında. Peki “Kenar Bilişim” ne anlama geliyor?

Kenar Bilişim, ya da Kenar’da Bilişim, fiziksel olarak yerel alanda bulunan cihazlarda gerçekleştirilen hesaplama görevleri veya veri işleme anlamına gelir. Bu, bu süreçlerin uzaktan yönetildiği bulut bilişimle doğrudan tezat oluşturur.

Mobil telefonlar, akıllı saatler ve hatta otomobil araçları gibi yaygın kenar cihazlarına bazı örnekler verilebilir! Kenar bilişimi, gecikmeyi azaltma, maliyetleri düşürme, veri güvenliğini artırma ve sistem güvenilirliği gibi birçok fayda sağlar.

Kenar bilişim hakkında daha fazla bilgi için önceki makalemi de okuyabilirsiniz!

Kaynak: California Technical Academy

Geleneksel olarak, küme bilişimi bulut bilişime özgüydü, ancak Tek Kartlı Bilgisayarlar (SBC’ler) ve ağ altyapısındaki ilerlemelerle bu durum artık geçerli değil. Örneğin, aşağıda gösterilen Jetson Mate Taşıyıcı Kartı, dört adede kadar Jetson Nano modülünü bağlayarak kendi bilgisayar kümenizi son derece kompakt bir 11 x 12 cm alanında oluşturmanıza olanak tanır!

Basit terimlerle, Kenar Bilişimde Küme Bilişimi‘ni, küme bilişiminin faydalarını kenar bilişimine getirmeyi amaçlayan yeni bir paradigma olarak anlayabilirsiniz, böylece her iki dünyanın en iyisini elde edersiniz!


Kümeleme Gerçekten Nasıl Çalışır?

Şu ana kadar bildiğimiz kadarıyla, bir bilgisayar kümesi birden fazla makineden oluşur ve her biri düğüm olarak bilinir. Her kümede genellikle tek bir ana düğüm bulunur ve ardından birden fazla köle düğüm (veya işçi düğüm) gelir. Hepsi birbirine bağlıdır ve birbirleriyle iletişim kurabilirler ve genellikle aynı işletim sistemini çalıştırırlar.

Küme bir aldığında, örneğin bazı verileri işleyip geri döndürme isteği geldiğinde, ana düğüm görevleri köle düğümlere devretmekten sorumludur. Hesaplama yükünün nasıl dağıtıldığı, kümelerin birbirinden farklı olduğu yerlerden biridir. Örneğin, bazı kümeler mümkün olan en yüksek performansı sunmaya odaklanırken, diğerleri arızalara karşı koruma sağlamak üzere tasarlanmıştır.


Kenar Bilişimde Kümelemenin Kullanımları ve Faydaları Nelerdir?

Bilmeleri gereken üç ana tür vardır. Her biri farklı amaçlara hizmet eder ve küme bilişimine kendi fayda setlerini katkıda bulunur!

  • Yüksek Erişilebilirlik – Bir arıza durumunda talepleri başka bir düğüme yönlendirerek uygulamaların her zaman erişilebilir olmasını sağlar.
  • Yük Dengeleme – Yüksek iş hacimlerini yönetmek için hesaplama yüklerini köle düğümler arasında eşit şekilde dağıtır.
  • Yüksek Performans – Yüksek hesaplama gereksinimlerine sahip görevler için hesaplama gücünü artırmak amacıyla birden fazla köle düğüm paralel olarak kullanılır.

1.  Sağlam Kenar Bilişim Sistemleri

Düşük bakım gereksinimlerinin kritik olduğu kenar uygulamalarında, kümeler daha büyük sistem güvenilirliği sağlayabilir. Tek bir bilgisayarda, bir arıza anında sistemin hemen durması söz konusu olur. Bir kümede, birden fazla köle düğüm, bu duruma karşı koruma sağlamak için yedeklilik oluşturur, çünkü diğer düğümler birinin arızalanması durumunda çalışmaya devam edebilir. Kümelerde donanım arızalarını onarmak da daha kolaydır, çünkü tüm altyapıyı yeniden yapılandırmak yerine yalnızca bir düğümü yeniden yapılandırmanız gerekir.

2.  Esnek ve Geniş Bir Kenar Uygulamaları Yelpazesi için Uygun

Farklı türdeki kümelerden, küme bilişiminin birçok farklı uygulama türünde bir yeri olduğunu görmek kolaydır. Örneğin, yüksek performanslı bir küme, kenarda makine öğrenimi çalıştırmak için kullanılabilirken, yüksek erişilebilirlikteki bir küme, IoT cihazlarından veri işlemek ve raporlamak için sunucuları barındırmak için uygun olacaktır. Ayrıca, kümeleme paradigmaları yazılım tabanlıdır – bu da aynı donanımın başka bir uygulamanın ihtiyaçlarını karşılamak için kolayca yeniden yapılandırılabileceği anlamına gelir!

3.  Kenarda Daha Fazla Hesaplama Gücü

Bir küme ile, hesaplama gereksinimlerinize göre daha fazla modül eklemek oldukça kolaydır. Örneğin, bir küme, tek bir bilgisayardan çok daha fazla güç sunan birden fazla çok işlemcili makine içerebilir! Bu, kenar bilişiminin olanaklarını büyük ölçüde artırır, çünkü kenar bilişim cihazları geleneksel olarak daha az hesaplama kapasitesi sunmuştur.


Kenar Bilişim için Küme Bilişimi Donanım Önerileri

Kenar uygulamalarında küme bilişimine başlamak istiyorsanız, mevcut donanım hakkında bir fikir edinmek iyi bir fikirdir. Bu bölümde, dikkate almanız için bazı en iyi önerilerimi gözden geçireceğim!

“`html

Raspberry Pi 4 / Compute Module 4

Raspberry Pi 4, kredi kartı boyutunda bir form faktöründe makul bir işlem gücü ve zengin I/O yetenekleri sunarak tartışmasız en popüler Tek Kart Bilgisayardır. Linux işletim sistemi çalıştıran ve kapsamlı belgeler ile topluluk desteği bulunan Raspberry Pi 4 (ve compute modülü), ilk bilgisayar kümenizi oluşturmak için harika bir seçenektir! Bu resmi eğitimde, bir Raspberry Pi Kümesi hesaplamaları neredeyse beş kat hızlandırmak için kullanılır!

Ürün Özellikleri:

  • Broadcom BCM2711, dört çekirdekli Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
  • 1GB, 2GB veya 4GB LPDDR4 RAM
  • 2.4 GHz ve 5.0 GHz IEEE 802.11b/g/n/ac kablosuz LAN, Bluetooth 5.0, BLE, Gigabit Ethernet
  • 2 × USB 3.0 portu / 2 × USB 2.0 portu
  • Standart 40-pin GPIO Header
  • 2 × micro HDMI portu (4Kp60’a kadar desteklenir)
  • 2-lane MIPI DSI ekran portu / 2-lane MIPI CSI kamera portu

Daha fazla bilgi edinmek ister misiniz? Raspberry Pi 4 hakkında daha fazla bilgi edinin Seeed Online Store‘da şimdi!

ODYSSEY X86J4105800

x86 CPU mimarisi üzerinde çalışan ODYSSEY x86, kendi başına güçlü bir tek kart bilgisayardır. Bir küme ile bu olanakları çok daha büyük işlem kapasiteleri ile genişletebilirsiniz! Çok sayıda I/O arayüzü ile ODYSSEY x86, her türlü kenar uygulaması için kesinlikle iyi bir hizmet verecektir.

Ürün Özellikleri:

  • Intel® Celeron® J4105, Dört Çekirdek 1.5-2.5GHZ
  • Çift Bant Frekansı 2.4GHz/5GHz WiFi
  • Intel® UHD Graphics 600
  • Çift Gigabit Ethernet
  • Entegre Arduino Ko-prosessor ATSAMD21 ARM® Cortex®-M0+
  • Raspberry Pi 40-Pin Uyumlu
  • 2 x M.2 PCIe (B Anahtar ve M Anahtar)
  • Windows 10 & Linux OS desteği
  • Grove Ekosistemi ile uyumlu

Daha fazla bilgi edinmek ister misiniz? ODYSSEY x86J4105800 hakkında daha fazla bilgi edinin Seeed Online Store‘da şimdi!

NVIDIA Jetson Nano Modülü

Kenarda makine öğrenimi iş yüklerini çalıştırmayı düşünüyorsanız, kesinlikle NVIDIA Jetson Nano Modülünü değerlendirmelisiniz. AI uygulamaları için özel olarak tasarlanmış olan NVIDIA’nın JetPack SDK ile, düşük güç tüketimi ile kenarda güçlü makine öğrenimini kolayca oluşturabilir, dağıtabilir ve yönetebilirsiniz. Jetson Nano, güçlü kümeler oluşturmak için Jetson Mate ile eşleştirilebilir!

Ürün Özellikleri:

  • Dört Çekirdek ARM Cortex-A57 MPCore İşlemci
  • NVIDIA Maxwell GPU, 128 NVIDIA CUDA Çekirdeği ile
  • 4GB 64-Bit LPDDR4 Bellek, 1600MHz 25.6GBps
  • 16GB eMMC Depolama
  • AI Geliştirme için NVIDIA JetPack SDK

Kendi NVIDIA Jetson Nano Geliştirici Kitinizi Seeed Online Store‘dan alın!


Küme Bilgisayar Örnekleri: Projeler & Kullanım Durumları

Bilgisayar kümeleri, hayal edebileceğiniz hemen hemen her durumda kullanılabilir ve geleneksel tek cihazlı bilgisayara kıyasla geliştirilmiş performans ve güvenilirlik sağlar. İşte kenarda küme bilgisayarının özellikle faydalı olabileceği birkaç örnek!

Makine Öğrenimi Çıkarım Sunucusu

Makine öğrenimi için gerekli hızlı hesaplamaları gerçekleştirmek üzere bir GPU kümesi çalıştırın! Bu, bulut bilişime benzer, ancak işlem yeteneklerini ihtiyaç duyulan yere, kenara çok daha yakın getiriyoruz. Örneğin, bir Jetson Nano modülleri kümesi kullanabilir ve güvenlik sistemlerinde birden fazla video akışında düşük gecikmeli, gerçek zamanlı kişi tespiti yapmak için birden fazla GPU’yu aynı anda kullanabilirsiniz!

Kaynak: TowardsDataScience

Kendi Barındırdığınız Özel Bulut Sunucusu

Bu işlemi zaten tek bir SBC kurulumu ile yapabilirsiniz, ancak bir küme üzerinde kendi web sunucunuzu dağıtmak, bu projeyi neredeyse sınırsız bir şekilde ölçeklendirme imkanı sunar – hatta kurumsal seviyeye kadar! Bu, sizin veya kuruluşunuzun ihtiyaç duyabileceği her türlü veri ve uygulamayı barındırabileceğiniz anlamına gelir.

Ayrıca, donanım maliyetleri uygun fiyatlı kenar bilişim cihazları ile büyük ölçüde azaltıldığından, geleneksel tam sunucu rafına kıyasla çok daha maliyet etkin bir yöntemdir! Ayrıca, kendi iç ağınızın ek güvenliğinden de yararlanın!

Kubernetes ile Uygulamaları Test Etme ve Dağıtma

Kubernetes’i, kenar kümelerinizde her türlü uygulamayı verimli bir şekilde test etmek ve dağıtmak için kullanabileceğinizi belirtmek kesinlikle önemlidir. Kubernetes, konteynerleştirilmiş iş yüklerini ve hizmetleri yönetmek için açık kaynaklı bir platformdur ve 2021’de bilgisayar kümelerini dağıtmanın en popüler yollarından biridir. Bunu, kümelerinizi yönetmenize yardımcı olan bir yönetim arayüzü olarak düşünebilirsiniz; kaynakları gerektiği gibi artırıp azaltarak donanımınızı en verimli şekilde kullanmanızı sağlar!

Kaynak: Kubernetes

Eğitim: Jetson Mate ile Bir Kubernetes Kümesi Oluşturma

Bu bölümde, Jetson Mate ve güçlü Jetson Nano modülleri ile kendi kümenizi kurmanın ne kadar kolay olduğunu göstereceğim. Ayrıca, tam eğitimi Seeed Wiki sayfamızda okuyabilirsiniz.

Gerekli Malzemeler

Bu eğitimi takip etmek için aşağıdaki öğelerin önerildiğini unutmayın. En az iki Jetson Nano modülüne sahip olmanız gerektiğini unutmayın, çünkü bir ana / baş düğüm ve bir işçi / köle düğüm için en az birine ihtiyacımız var.

Jetson OS’u Kurun ve Yapılandırın

Her bir modül için işletim sistemini NVIDIA’nın resmi SDK yöneticisi ile yapılandırmamız gerekecek. İlk olarak, aşağıda gösterildiği gibi hedef donanımı seçin.

“““html

Ardından, yüklemek istediğiniz işletim sistemini ve kütüphaneleri seçin:

Dosyaları indirin ve yükleyin. İndirme sırasında, Jetson Nano hesaplama modülünü Jetson Mate’in ana düğümüne yerleştirin.

Bunun ardından, 2 GND pinini gösterilen resme göre kısaltın.

Jetson Mate’i bilgisayarınıza mikro USB portu aracılığıyla bağlayın ve makineyi uyandırma butonuna basarak açın.

Son adım, işletim sistemini hesaplama modülüne yüklemektir. İşletim sistemi ve yazılım kütüphanesi yüklemesi tamamlandığında, bir pencere açılacaktır. Manuel Kurulum seçeneğini seçin, ardından flash’a tıklayın ve tamamlanana kadar bekleyin. Hepsi bu kadar!

Unutmayın ki tüm modüller yalnızca ana düğümde yüklendiğinde flash edilebilir. Tüm modüllerinizi ana düğümde tek tek flash edip yapılandırmanız gerekmektedir.

Küme üzerinde Kubernetes Çalıştırma

Sonraki adımlarda, NVIDIA Jetson Nano modüllerimiz kümesinde Kubernetes’i yükleyip yapılandıracağız!

Docker’ı Yapılandırma

Hem Çalışan hem de Ana modüller için, docker çalışma zamanını varsayılan olarak “nvidia” olarak ayarlamamız gerekiyor.

Dosyayı /etc/docker/daemon.json konumunda aşağıdaki gibi değiştirin.

{
    "default-runtime" : "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

Docker daemon’ını aşağıdaki komutla yeniden başlatın,

sudo systemctl daemon-reload && sudo systemctl restart docker

ardından Docker varsayılan çalışma zamanını NVIDIA olarak doğrulayın.

sudo docker info | grep -i runtime

İşte örnek bir çıktı:

Runtimes: nvidia runc
Default Runtime: nvidia

Kubernetes’i Yükleme

Hem Çalışan hem de Ana modüller için, aşağıdaki komutları komut satırında kullanarak kubelet, kubeadm ve kubectl’yi yükleyin.

sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

# Kubernetes deposunu ekleyin
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt update && sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

Swap’ı devre dışı bırakın. Not: Her yeniden başlattığınızda bunu kapatmanız gerekiyor.

sudo swapoff -a

Aşağıdaki adımlarda kullanacağımız deviceQuery’yi derleyin.

cd /usr/local/cuda/samples/1_Utilities/deviceQuery && sudo make

Kubernetes’i Yapılandırma

Yalnızca Ana modülde, kümeyi başlatın:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Çıktı, kümeye bir pod ağı dağıtmak için çalıştırılabilecek komutları ve kümeye katılmak için komutları gösterir. Her şey başarılı olursa, çıktının sonunda buna benzer bir şey görmelisiniz:

Kubernetes kontrol düzleminiz başarıyla başlatıldı!
 
Kümenizi kullanmaya başlamak için, aşağıdakileri normal bir kullanıcı olarak çalıştırmalısınız:
 
  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config
 
Artık kümeye bir pod ağı dağıtmalısınız.
Aşağıdaki seçeneklerden biriyle "kubectl apply -f [podnetwork].yaml" çalıştırın:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/
 
Ardından, her birini kök olarak çalıştırarak herhangi bir sayıda çalışan düğüme katılabilirsiniz:
 
kubeadm join 192.168.2.114:6443 --token zqqoy7.9oi8dpkfmqkop2p5 \
    --discovery-token-ca-cert-hash sha256:71270ea137214422221319c1bdb9ba6d4b76abfa2506753703ed654a90c4982b

Çıktıdan gelen talimatları izleyerek, aşağıdaki komutları çalıştırın:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Kontrol düzlemi düğümüne bir pod-ağı eklentisi yükleyin. Bu durumda, calico kullanıyoruz.

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Tüm podların çalıştığından emin olun:

kubectl get pods --all-namespaces

İşte örnek bir çıktı:

NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
kube-system   kube-flannel-ds-arm64-gz28t                1/1     Running   0          2m8s
kube-system   coredns-5c98db65d4-d4kgh                   1/1     Running   0          9m8s
kube-system   coredns-5c98db65d4-h6x8m                   1/1     Running   0          9m8s
kube-system   etcd-#yourhost                             1/1     Running   0          8m25s
kube-system   kube-apiserver-#yourhost                   1/1     Running   0          8m7s
kube-system   kube-controller-manager-#yourhost          1/1     Running   0          8m3s
kube-system   kube-proxy-6sh42                           1/1     Running   0          9m7s
kube-system   kube-scheduler-#yourhost                   1/1     Running   0          8m26s

Yalnızca Çalışan modüllerde, her düğümü kümeye ekleme zamanı geldi; bu, kube init komutunun sonunda sağlanan kubeadm join komutunu çalıştırmakla ilgilidir. Kümenize eklemek istediğiniz her Jetson Nano için, ana makineye giriş yapın ve şunu çalıştırın:

 küme - tokenlarınız ve ca-cert-hash'leriniz değişecektir
$ sudo kubeadm join 192.168.2.114:6443 --token zqqoy7.9oi8dpkfmqkop2p5 \
    --discovery-token-ca-cert-hash sha256:71270ea137214422221319c1bdb9ba6d4b76abfa2506753703ed654a90c4982b

Yalnızca Ana düğümde, aşağıdaki komutu çalıştırdığınızda yeni düğümleri görebilmelisiniz:

“`

kubectl get nodes

İşte üç işçi düğümü için örnek çıktı.

Düğümlerinizi takip etmek için, her işçi düğümünü işçi olarak etiketlemek için sahip olduğunuz modül sayısına göre aşağıdaki komutları çalıştırın! Bu örnek üç işçi kullandığı için, şunları çalıştıracağız:

kubectl label node se2 node-role.kubernetes.io/worker=worker
kubectl label node se3 node-role.kubernetes.io/worker=worker
kubectl label node se4 node-role.kubernetes.io/worker=worker

Artık Jetson Mate & Jetson Nano modüllerinizde çalışan kendi Kubernetes kümenizi var! Buradan, bir Jupyter çalışma zamanı kullanarak küme üzerinde veri analitiği veya makine öğrenimi iş yükleri çalıştırmak gibi çeşitli şeyler yapabilirsiniz!

Bunu nasıl yapabileceğinizi daha fazla okumak için Seeed Wiki Sayfası‘nı ziyaret ettiğinizden emin olun!


Özet & Daha Fazla Kaynak

Bugünkü makaleme katıldığınız için teşekkür ederim! Son yıllarda, kenar bilişime daha fazla güç ve olanaklar getiriliyor ve kümeleme bunun sadece bir yoludur! Özellikle, kenarda küme bilişimi, güvenilir uygulamalar oluşturmanın harika bir yoludur veya basitçe yoğun görevleri ana işlemciden devretmenin bir yoludur – ama gerçekten, çalıştırmak istediğiniz her şey muhtemelen bir kümede harika çalışacaktır!

Jetson Mate, Raspberry Pi 4 (Compute Module 4) ve Odyssey x86 J4105 Serisi gibi daha birçok ürünle, kenar bilişimin olanakları her gün genişliyor!

Kenar bilişimi ve kullanım alanları hakkında daha fazla bilgi edinmek için, aşağıdaki makaleler ilginizi çekebilir:

Leave a Reply

Your email address will not be published. Required fields are marked *