Săriți la conținut

Documentație

Proxmox VE

Proxmox este integrarea de hipervizor. Ea creează mașini virtuale clonând un șablon, urmărește sarcina cât timp rulează și ține panoul în pas cu ceea ce raportează efectiv clusterul.

De ce aveți nevoie

Proxmox nu folosește o parolă pentru automatizare. Creați un token API, care este un identificator din trei părți plus un secret arătat o singură dată.

  • Gazdă: URL-ul de bază complet al API-ului. Trebuie să fie HTTPS; portul 8006 este completat pentru dumneavoastră dacă îl omiteți.
  • Identificatorul tokenului: în forma user@realm!tokenname, exact cum îl scrie Proxmox.
  • Secretul tokenului: valoarea pe care Proxmox o arată o singură dată, la crearea tokenului.
  • Amprenta TLS: certificatul nodului însuși, nu al autorității care l-a emis.
shell
openssl s_client -connect pve.example.com:8006 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Comenzile și ieșirea din terminal sunt în engleză peste tot, în panou și în aceste pagini. Un singur text, un singur adevăr: ce citiți aici este literalmente ce va afișa gazda dumneavoastră.
Dezactivați separarea privilegiilor pe token sau dați-i tokenului propriile permisiuni în mod explicit. Cu ea activă, tokenul pornește fără niciunul dintre drepturile utilizatorului căruia îi aparține și fiecare apel eșuează dintr-un motiv pe care Proxmox nu îl explică.

Setări

Patru alegeri nesecrete, în fila de setări. Fără ele, integrarea este conectată, dar nu poate crea nimic.

  • Nod: pe care nod din cluster se construiește. Panoul oferă nodurile pe care agentul dumneavoastră le-a văzut efectiv; dacă nu a văzut încă niciunul, puteți tasta unul.
  • Stocare: unde ajung discurile mașinilor noi.
  • Bridge: opțional. Este stocat și folosit acolo unde platforma creează o mașină de la zero, dar o clonă moștenește bridge-ul șablonului din care a fost clonată.
  • Interval de ID-uri de mașină: blocul de ID-uri de VM Proxmox în interiorul căruia poate aloca Provibr.

Intervalul este granița de siguranță

Aceasta este cea mai importantă setare din pagină. Provibr alocă identificatori doar în interiorul intervalului pe care i-l dați și nu atinge niciodată nimic din afara lui. Țineți propriile mașini de producție în afara intervalului și rămân de neatins, orice ar apăsa cineva în panou.

Identificatorii nu sunt reutilizați niciodată, nici măcar după ștergerea unei mașini. Un mesaj de stare întârziat de la o mașină care nu mai există nu poate ajunge, așadar, niciodată la o mașină nouă.
Un șablon pe care îl legați ca sistem de operare trebuie să se afle în afara intervalului, iar panoul îl refuză altfel: în interiorul intervalului, alocatorul ar distribui la un moment dat chiar identificatorul șablonului, iar următoarea comandă ar clona din sine însăși.

Cum se creează o mașină

Crearea unei mașini înseamnă o sarcină de clonare urmată de un număr mic de apeluri de configurare. Panoul urmărește sarcina și arată progres real acolo unde Proxmox îl raportează.

  1. Clonează șablonul ales, pe nodul din setări.
  2. Mărește discul de boot la dimensiunea comandată. Un disc poate doar să crească; dacă șablonul este deja mai mare, mașina păstrează dimensiunea șablonului.
  3. Aplică nucleele, memoria și setările cloud-init (adresă, gateway, servere de nume, utilizator, chei SSH) într-un singur apel de configurare.
  4. Activează firewallul și pornește mașina.
După pornire, mașina raportează starea „se instalează” în loc de „în funcțiune” și devine „în funcțiune” abia după ce cloud-init și-a făcut treaba în interiorul sistemului oaspete. De aceea o mașină nou creată nu devine verde imediat.

Containere Linux

O legătură Proxmox poartă mașini virtuale și containere. Planul hotărăște pe care dintre cele două o produce o comandă, iar de acolo încolo felul călătorește cu fiecare comandă în loc să fie ghicit. Un container nu este o mașină virtuală mai mică: împarte nucleul gazdei sale, de aceea este ieftin și de aceea o mână de lucruri pur și simplu nu există acolo.

  • Planul spune mașină virtuală, container, sau oricare dintre cele două. La oricare dintre cele două, alegerea se face în timpul comenzii, iar lista de imagini urmează acea alegere în loc să completeze una în tăcere.
  • Un container nu este clonat, ci despachetat, dintr-un șablon de container aflat pe legătură. Este alt fel de sursă decât șabloanele din care se clonează o mașină virtuală, iar o imagine care are numai șablon de container nu apare în lista mașinilor virtuale.
  • Unprivileged este setarea implicită. Rădăcina din interiorul containerului nu este rădăcina de pe gazdă, iar asta este ceea ce se dorește, în afară de cazul în care ceva cere expres altfel.
  • Stocarea este un volum rădăcină plus puncte de montare. Panoul le arată ca cheie, sursă și cale în interiorul oaspetelui; calea de pe gazdă nu apare în mod intenționat, pentru că spune mai multe despre gazdă decât despre mașină.

Fiecare comandă poartă felul cu ea, iar o comandă care nu se potrivește este refuzată înainte de a deveni o sarcină, cu motivul pe ecran. Două dintre acele motive înseamnă lucruri cu adevărat diferite.

  • Niciodată: pornirea din rețea, o mașină goală, precum și firmware sau ordinea de pornire. Un container nu pornește de pe o placă de rețea și nu are firmware pe care să îl întrebe.
  • Încă nu: discuri, plăci de rețea și ecranul de echipamente. Un container are, ce-i drept, stocare și rețea, într-o altă formă, iar refolosirea pentru ele a câmpurilor unei mașini virtuale ar da acelorași cuvinte un al doilea înțeles.
  • Disponibil: creare, pornire, oprire, închidere, stare, ștergere, suspendare, reluare, reinstalare, zidul de protecție și apărarea lui împotriva adreselor falsificate.
  • Consola este un caz aparte și este un încă nu cu motiv: consola unei mașini virtuale este un ecran, iar un container nu are așa ceva. Ce are este un terminal, și acela este alt protocol și alt client.

Copiile de siguranță au o deosebire ușor de greșit, iar ea funcționează exact invers față de o mașină virtuală. Un punct de montare se află în copie numai dacă a fost bifat pentru asta; un disc de mașină virtuală se află acolo cât timp nu a fost debifat. Un container cu un volum de date pe care nu l-a bifat nimeni are, prin urmare, o copie care pare completă și conține numai volumul rădăcină.

Panoul spune pentru fiecare punct de montare dacă se află în copie și nu numește niciodată completă o acoperire nemăsurată. Bind mounts și dispozitivele trecute direct oricum nu merg niciodată: ce se află în spatele lor aparține gazdei și nu mașinii.

Reinstalarea unui container este o înlocuire și nu o clonare peste. Panoul arată întâi ce se întâmplă cu fiecare punct de montare și abia apoi înlocuiește mașina sub o singură încuietoare: volumul rădăcină este reconstruit, iar ceea ce figura ca păstrat este pus la loc. Ce nu era în acea listă nu este restaurat.

Cloud-init

Provibr scrie un set fix și mic de chei cloud-init și nimic altceva: cele patru configurații de rețea, serverele de nume și domeniul de căutare, utilizatorul, tipul de configurație, cheile SSH, parola și dacă să ruleze o actualizare de pachete la prima pornire. Lista există de ambele părți, așa că un câmp care se întâmplă să se numească cloud-init nu poate rescrie niciodată o setare arbitrară a mașinii.

Parola de root nu apare niciodată în pista de audit. Se înregistrează doar numele câmpului; valoarea călătorește separat și nu este stocată.

Opțiunea de actualizare la prima pornire are nevoie de Proxmox 8.1 sau mai nou. Pe un nod mai vechi, apelul este reîncercat fără ea în loc să eșueze.

Ce puteți face ulterior

Pornire, oprire, închidere, întrerupere, reluare, reîmprospătare, reinstalare și ștergere. O închidere cere mai întâi politicos sistemului oaspete și trece la o oprire forțată după un timp de așteptare.

Discurile și plăcile de rețea pot fi adăugate, redimensionate, atașate și detașate. Un disc poate doar să crească. Discul de boot și discul cloud-init nu pot fi detașate, la fel nici prima placă de rețea.

Firewallul are o listă de reguli editabilă și un jurnal, ambele citite de pe nod și scrise pe nod.

De reținut

  • O clonă moștenește bridge-ul de rețea al șablonului ei. Bridge-ul din plan și din integrare este stocat și folosit în altă parte, dar nu se aplică unei clone.
  • Utilizarea discului din interiorul unei mașini virtuale nu este ceva ce Proxmox poate vedea, așa că acel grafic arată dimensiunea alocată și nicio linie de utilizare. Celelalte măsurători sunt reale.
  • Șabloanele sunt excluse din interogare și nu se socotesc niciodată la licența dumneavoastră.
  • Mașinile care există pe clusterul dumneavoastră, dar nu în Provibr, sunt ignorate la fiecare interogare. Nici nu pot fi importate din Proxmox: astăzi nu există import pentru hipervizoare.