Skip to main content

Linux

La base de totes les màquines: una imatge Ubuntu amb cloud-init i un servidor base sobre el qual es construeix cada aplicació.

Imatge Linux​

linux-image descarrega una cloud image en un datastore de Proxmox. S'executa una vegada per imatge i abans de qualsevol cosa que creï una màquina.

Es desplega des d'ISOs a Horizon amb la plantilla Linux Cloud Image Downloader. Horizon emplena la connexió a Proxmox, el node i el datastore segons el servidor i l'emmagatzematge escollits, i només pregunta:

  • iso_url: la URL de la imatge. S'esperen les Ubuntu minimal.
  • iso_filename: el nom amb què es desa.
warning

La imatge ha d'incloure cloud-init: és el que permet a Proxmox configurar el hostname, els usuaris, les claus SSH i la xarxa a la primera arrencada. Una ISO d'instal·lació es descarrega sense problema i arrenca una màquina on ningú no pot entrar.

tip

En un clúster de Proxmox, fes servir un datastore compartit entre tots els nodes, o la imatge només estarà disponible al node que la va descarregar.

Servidor base​

linux crea una VM Ubuntu sense cap servei: només l'agent de QEMU, l'agent NRPE i el Node Exporter de Prometheus. Té dos usos:

  • Un servidor que es configura fora de Terraform, mitjançant la plantilla Ubuntu Base Server.
  • La primera fase de qualsevol aplicació desplegada per fases. Totes les plantilles de Sora comencen amb ell.

Disc de dades​

vm_disk_data_size afegeix un segon disc muntat a /data. És la convenció de tot el projecte: el disc arrel guarda el sistema operatiu i tot el que un servei necessita conservar va a /data. Per defecte és 0, sense disc. El seu check de Nagios només es publica quan existeix.

CPU​

Per defecte el tipus de CPU és x86-64-v3 amb el flag +pcid:

  • x86-64-v3 ofereix AVX2, FMA i BMI, que fan servir compiladors i bases de dades. Haswell és la CPU més antiga que ho té tot.
  • +pcid evita que la mitigació de Meltdown buidi la TLB a cada crida al sistema.
  • No es fa servir host perquè una VM conserva la CPU amb què va arrencar: en un clúster amb CPUs diferents, una migració en calent cap a un node més antic fallaria.
compte

Canviar la CPU d'una VM existent la reinicia. Planifica-ho com qualsevol altra finestra de manteniment.

Llindars de Nagios​

L'agent NRPE de cada VM defineix els seus límits, així que la càrrega i el nombre de processos són variables del projecte:

VariablePer defecte
nagios_check_load_warning.80,.75,.70
nagios_check_load_critical.90,.85,.80
nagios_check_procs_warning400
nagios_check_procs_critical600

La càrrega és per CPU: .80 vol dir el 80% d'un nucli, sigui quina sigui la mida de la VM. Una aplicació amb molta càrrega puja els seus propis límits al formulari d'Horizon, sense tocar Nagios.

Ordre d'arrencada​

vm_startup_order decideix quan arrenca la VM després de reiniciar el node de Proxmox. Les plantilles el defineixen segons el seu lloc a la seqüència:

AplicacióOrdre
PostgreSQL10
Kubernetes20
Monitorització70
GitLab Runner99

Sortides​

host_domain, data_mount_point i metrics_urls són sortides que llegeixen les fases següents i els checks de Nagios (steps.vm.host_domain), en lloc de preguntar a l'operador una cosa que la plataforma ja sap.