Virtualizzazione
Cos'è cloud-init?
cloud-init is the standard mechanism for configuring a virtual machine on first boot, using metadata supplied by the platform. It handles SSH key injection, hostname, network configuration and arbitrary user scripts, which is what makes fully automated provisioning possible.
Perché cloud-init è importante
Gestisce l'iniezione delle chiavi SSH, hostname, configurazione di rete e script utente arbitrari, che è ciò che rende possibile il provisioning completamente automatizzato.
cloud-init in pratica
Al primo avvio, cloud-init viene eseguito prima che i tuoi servizi partano. Dovresti guardare la console per i 'moduli in esecuzione' e controllare /var/log/cloud-init-output.log. Uno script user-data configurato male può bloccare l'avvio o lasciare SSH bloccato. Dovresti testare prima in un'istanza usa e getta. Puoi rieseguire con 'cloud-init clean' e riavviare. Sbagliare ti costa tempo per il riprovisioning dal pannello, o una sessione VNC per sistemarlo a mano.
Errori comuni su cloud-init
L'errore comune è presumere che cloud-init venga eseguito di nuovo a ogni avvio. Viene eseguito una volta al primo avvio. Se aggiungi uno script a user-data aspettandoti che venga applicato al riavvio, non accadrà. Correzione: usalo solo per la configurazione iniziale, oppure chiama esplicitamente 'cloud-init clean' per ripristinare lo stato per una nuova esecuzione.
cloud-init — domande frequenti
Come posso passare user-data a cloud-init?
Quando effettui il provisioning dal pannello o tramite API, puoi fornire un campo user-data. Viene iniettato tramite i metadati e cloud-init lo applica al primo avvio. Mantienilo come script di shell o come YAML cloud-config, a seconda delle tue esigenze.
Posso usare cloud-init con un'ISO personalizzata?
Sì, se l'ISO ha cloud-init installato. Ad esempio, le immagini cloud delle principali distribuzioni lo includono. Puoi anche caricare la tua immagine con cloud-init. Assicurati che l'istanza sia KVM, non un container, poiché cloud-init si basa sui metadati forniti dalla piattaforma.
Altro da virtualizzazione
- KVM
- KVM è una virtualizzazione completa dell'hardware integrata nel kernel Linux, che dà a ogni guest il proprio kernel e un isolamento dal hardware di altri tenant.
- OpenVZ
- OpenVZ è una virtualizzazione basata su container in cui ogni istanza condivide il kernel dell'host, quindi i guest non possono caricare moduli del kernel o eseguire un sistema operativo diverso.
- LXC
- LXC è una containerizzazione nativa di Linux che isola i processi con namespace e cgroups condividendo il kernel dell'host.
- Hypervisor
- Un hypervisor è il livello software che crea ed esegue macchine virtuali, allocando CPU fisica, memoria e I/O tra di esse.
- Virtualizzazione annidata
- La virtualizzazione annidata consente a una macchina virtuale di eseguire a sua volta macchine virtuali, esponendo le estensioni di virtualizzazione del processore al guest.
- vCPU
- Una vCPU è un processore virtuale presentato a un guest, supportato da tempo di pianificazione su un core o thread fisico.