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.
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.
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-v3ofereix AVX2, FMA i BMI, que fan servir compiladors i bases de dades. Haswell és la CPU més antiga que ho té tot.+pcidevita que la mitigació de Meltdown buidi la TLB a cada crida al sistema.- No es fa servir
hostperquè 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.
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:
| Variable | Per defecte |
|---|---|
nagios_check_load_warning | .80,.75,.70 |
nagios_check_load_critical | .90,.85,.80 |
nagios_check_procs_warning | 400 |
nagios_check_procs_critical | 600 |
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 |
|---|---|
| PostgreSQL | 10 |
| Kubernetes | 20 |
| Monitorització | 70 |
| GitLab Runner | 99 |
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.