Cum configurezi un cluster Raspberry Pi?

În acest tutorial vă voi prezenta pas cu pas pentru a configura un cluster Raspberry Pi.

Soluția pe care o propun pentru acest proiect este bazată pe o versiune lite a Kubernetes (k8s) cunoscută și ca k3s.

De ce ai nevoie?

Pentru acest proiect aveți nevoie de următoarele echipamente:

  • între 1 și n Raspberry Pi 4 cu 8 GB RAM
  • între 1 și n cabluri USB-C / încărcător
  • opțional se pot folosi POE hat
  • 1 x switch cu n porturi (opțional cu POE)
  • n cabluri de rețea
  • n carduri microSD de 32 GB sau SSD-uri (recomand SSD)

Etapa de pregătire a Raspberry Pi-ului

După ce ați instalat Raspberry Pi OS Lite pe 64 de biți pe un SSD, urmând instrucțiunile de aici, activați protocolul SSH, folosind instrucțiunile de aici.

Pasul următor este să conectați SSD-ul la Raspberry Pi și să îl pornitți pentru 2 -3 minute, timp în care Pi-ul finalizează procesul de bootare și își generează toate fișierele, după care să îl opriți, scoateți SSD-ul și îl reconectați la calculator.

Configurarea fișierului cmdline.txt

Accesați partiția de boot de pe SSD și deschideți fișierul cmdline.txt la finalul căruia adăugați următoarele:

cgoup_memory=1 cgroup_enable=memory

Această comandă este necesară pentru rularea Kubernetes și asigură faptul că Raspberry Pi e complet funcțional.

După această comandă, în cadrul aceluiași fișier, opțional se poate seta adresa IP a Raspberry PI astfel:

ip=[adresă IP]::[gateway]:[subnet]:[hostname]:[NIC]:off

Asigurați-vă că adresa IP nu este folosită de un alt dispozitiv și că aceasta face parte din același subnet.

De asemenea, NIC (sau Network Interface Card) în cele mai multe cazuri este eth0, iar off de la final înseamnă dezactivarea autoconfigurării.

Astfel că forma finală a fișierului cmdline.txt va arăta ceva similar cu:

console=serial0,115200 console=tty1 root=PARTUUID=0091200f-02 rootfstype=ext4 fsck.repair=yes rootwait cgoup_memory=1 cgroup_enable=memory ip=10.0.0.5::10.0.0.1:255.255.255.0:pimcluster:eth0:off

Salvați modificările făcute și închideți fișierul.

Configurarea fișierului config.txt

Acum deschideți fișierul config.txt de pe aceeași partiție și la sfârșitul acestui fișier mai adăugați o linie în care scrieți:

arm_64bit=1

Este posibil ca această comandă să fie deja inclusă în fișier dat fiind faptul că ați instalat versiunea pe 64 de biți a Raspberry Pi, însă e bine să verificați.

Acum că ați finalizat setările de pregătire a Raspberry Pi, puteți scoate SSD-ul din calculator și să îl conectați la Pi.

Comutarea la userul root

După ce a bootat, conectați-vă la Raspberry Pi prin SSH și treceți pe userul root:

sudo su -

Actualizarea sistemului de operare

Actualizati sistemul de operare urmând instrucțiunile de aici.

Instalarea Kubernetes

În mod implicit folosește containere pentru instalarea de aplicații / servicii, însă se pot folosi și Docker. Voi prezenta pașii de configurare pentru ambele scenarii de utilizare.

Container

Introduceți următoarea comandă de instalare a Kubernetes:

curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE=”644” sh -s -

Instrucțiunea K3S_KUBECONFIG_MODE=”644” este pentru integrarea în Rancher.

Docker

În acest caz, înainte de instalarea propriu-zisă a Kubernetes, va trebui să instalați Docker.

Puteți face asta, folosind comanda:

sudo apt-get install docker

Acum că Docker a fost instalat puteți instala Kubernetes folosind comanda de mai sus pentru container, la care veți mai adăuga un parametru.

Astfel comanda de instalare va fi:

curl -sfL https://get.k3s.io -docker | K3S_KUBECONFIG_MODE=”644” sh -s -

Verificarea nodurilor din cluster

Fiecare server din cluster se numește nod. Odată instalat Kubernetes pe primul Raspberry Pi folosind comanda de mai sus, acesta va deveni nodul master. Acesta va controla celelalte noduri și doar de pe el se vor rula toate comenzile.

Pentru a rula orice comandă în Kubernetes se va pune în față întotdeauna:

kubectl

Pentru a verifica în orice moment câte noduri sunt în cluster și dacă toate nodurile sunt funcționale, se va folosi comanda:

kubectl get nodes

Adăugarea altor servere în cluster

Urmând instrucțiunile de mai sus veți configura primul server din cluster. Pentru a adăuga alte servere în cluster, primul pas este să copiezi de pe serverul principal un token pentru autentificarea serverelor secundare.

Pentru asta veți folosi comanda:

cat /var/lib/rancher/k3s/server/node-token

Va apărea un cod foarte lung de cifre, litere și cartactere speciale ce trebuie copiat și folosit ulterior

Acum pentru adăugarea fiecărui server secundar în cluster, urmați instrucțiunile de la etapa de pregătire a Raspberry Pi-ului, setând desigur alt IP, iar când ajungeți la etapa de instalare a Kubernetes veți folosi următoarea comandă:

curl -sfL https://get.k3s.io | K3S_TOKEN="YOURTOKEN" K3S_URL="https://[your server]:6443" K3S_NODE_NAME="servername" sh -

În comanda de mai veți înlocui:

  • YOURTOKEN cu tokenul extras folosind comanda cat de mai sus
  • [your server] cu adresa IP a serverului principal (primul Raspberry Pi configurat)
  • servername cu numele pe care doriți să îl aibă serverul secundar în cluster. Fiecare server trebuie să aibă alt nume.

Dezinstalarea k3s

Dacă din diverse motive procesul de instalare dă eroare sau se blochează, folosiți următoarea comandă pentru a dezinstala k3s apoi reluați procesul:

sudo /usr/local/bin/k3s-agent-uninstall.sh sudo rm -rf.

Lasă un comentariu