Přemýšleli jste někdy o tom, co se stalo na pozadí, kdykoli vytvoříme instanci nebo virtuální stroj buď prostřednictvím Openstack cli nebo dashboardu, V tomto článku krok za krokem vysvětlíme vytvoření VM nebo instance v Openstacku. Všechny komponenty Openstack spolu komunikují pomocí API pomocí Auth-tokenu.
Vytvoření virtuálního počítače v OpenStack přes OpenStack CLI
Zdroj souboru pověření a poté spusťte příkaz nova-boot,
# nova boot --flavor m1.small --image centos7 --nic net-id={private_network_id} --security-group norprod_sec_grp --key-name my_key stack_testvm
Jakmile je příkaz nova boot proveden, pak se za scénou provedou následující kroky,
Krok:1) Horizon Dashboard nebo OpenStack CLI získá uživatelská pověření a ověří se pomocí služby identity prostřednictvím REST API
- Služba identity (Keystone) ověří uživatele pomocí přihlašovacích údajů uživatele a poté vygeneruje a odešle zpět auth-token, tento auth-token, který bude použit pro odeslání požadavku dalším komponentám prostřednictvím REST-Call
Krok:2) Dashboard nebo OpenStack CLI převede nový požadavek na instanci zadaný v příkazu spuštění instance nebo nova boot na požadavek REST API a odešle jej do nova-api
Krok:3) Poté služba nova-api obdrží požadavek a odešle tento požadavek službě identity (Keystone) pro ověření auth-tokenu a oprávnění k přístupu,
- Služba Keystone ověří token a odešle aktualizované ověřovací hlavičky s rolemi spolu s oprávněními
Krok:4) Po obdržení odpovědi z keystone pak nova-api zkontroluje konflikty s nova-database a poté vytvoří počáteční záznam databáze pro novou instanci nebo virtuální počítač.
Krok:5) nova-api odešle požadavek rpc.call do nova-scheduler a očekává, že dostane aktualizovaný záznam instance se zadaným ID hostitele
Krok:6) Nyní nova-scheduler vybere požadavek z fronty
Krok:7) nova-scheduler mluví s nova-database, aby pomocí filtrovacího a váhového mechanismu našel vhodného hostitele,
- nova-scheduler po filtrování a zvážení vrátí aktualizovaný záznam instance s příslušným ID hostitele
- nova-scheduler odešle požadavek rpc.cast do nova compute pro spuštění instance na příslušném hostiteli
Krok:8) nova-compute vybere požadavek z fronty a odešle požadavek rpc.call do nova-conductor, aby získal informace o VM nebo instanci, jako je ID hostitele a varianta (RAM, CPU a Disk)
Krok:9) nova-conductor převezme požadavek z fronty a komunikuje s nova-databází,
- nova-conductor získá informace o instanci
- Nova-compute nyní vybírá informace o instancích z fronty
Krok:10) nova-compute se připojí k look-api voláním REST pomocí auth-tokenu a poté nova-compute použije ID obrázku k získání URI obrázku ze služby obrázků a načte obrázek z úložiště obrázků
Krok:11) look-api ověří auth-token pomocí keystone a poté nova-compute získá metadata obrázku
Krok:12) Nova-compute provede REST-call předáním auth-tokenu Network API (Neutron) k přidělení a konfiguraci sítě tak, aby vm získal IP adresu
Krok:13) Neutronový server ověří auth token pomocí keystone a poté nova-compute získá informace o síti.
Krok:14) Nova-Compute provede volání REST předáním auth-tokenu Volume API pro připojení svazku k instanci nebo virtuálnímu počítači.
Krok:15) cinder-api ověří auth-token pomocí keystone a pak nova-compute získá informace o úložišti bloku.
Krok:16) nova-compute generuje data pro ovladač hypervisoru a provádí požadavek na hypervisoru pomocí libvirt nebo API a nakonec je na hypervioru vytvořen VM. Tento VM můžeme vidět v Dashboardu a také pomocí příkazu „nova list“.
To je z článku vše, doufám, že pro vás bude tento článek informativní. Podělte se prosím o své názory a komentáře.