Avez-vous déjà pensé à ce qui s'est passé en arrière-plan chaque fois que nous créons une instance ou une machine virtuelle via Openstack cli ou tableau de bord, Dans cet article, nous élaborerons étape par étape la création de VM ou d'instance dans Openstack. Tous les composants Openstack communiquent entre eux avec l'API en utilisant Auth-token.
Création d'une machine virtuelle dans OpenStack via OpenStack CLI
Sourcez le fichier d'informations d'identification, puis exécutez la commande 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
Une fois la commande nova boot exécutée, les étapes suivantes sont exécutées en arrière-plan,
Étape 1) Le tableau de bord Horizon ou l'interface de ligne de commande OpenStack obtient les informations d'identification de l'utilisateur et s'authentifie auprès du service d'identité via l'API REST
- Le service d'identité (Keystone) authentifie l'utilisateur avec les informations d'identification de l'utilisateur, puis génère et renvoie un jeton d'authentification, ce jeton d'authentification qui sera utilisé pour envoyer la demande à d'autres composants via REST-Call
Étape 2) Le tableau de bord ou la CLI OpenStack convertit la nouvelle demande d'instance spécifiée dans l'instance de lancement ou la commande de démarrage nova en une demande d'API REST et l'envoie à nova-api
Étape 3) Ensuite, le service nova-api reçoit la demande et envoie cette demande au service d'identité (Keystone) pour la validation du jeton d'authentification et de l'autorisation d'accès,
- Le service Keystone valide le jeton et envoie les en-têtes d'authentification mis à jour avec les rôles ainsi que les autorisations
Étape 4) Après avoir obtenu la réponse de Keystone, nova-api vérifie les conflits avec nova-database, puis crée une entrée de base de données initiale pour la nouvelle instance ou VM.
Étape 5) nova-api envoie la requête rpc.call à nova-scheduler en espérant obtenir une entrée d'instance mise à jour avec l'identifiant d'hôte spécifié
Étape 6) Maintenant, nova-scheduler sélectionne la demande dans la file d'attente
Étape 7) nova-scheduler parle à nova-database pour localiser un hôte approprié en utilisant un mécanisme de filtrage et de pondération,
- nova-scheduler renvoie l'entrée d'instance mise à jour avec l'ID d'hôte approprié après filtrage et pondération
- nova-scheduler envoie la requête rpc.cast à nova compute pour lancer une instance sur l'hôte approprié
Étape 8) nova-compute sélectionne la requête dans la file d'attente et envoie la requête rpc.call à nova-conductor pour obtenir les informations sur la machine virtuelle ou l'instance telles que l'identifiant de l'hôte et la saveur (RAM, CPU et disque)
Étape :9) nova-conductor prend la demande de la file d'attente et communique avec nova-database,
- nova-conductor obtient les informations sur l'instance
- nova-compute sélectionne désormais les informations d'instance dans la file d'attente
Étape 10) nova-compute se connecte à eye-api en effectuant un appel REST à l'aide d'un jeton d'authentification, puis nova-compute utilise l'identifiant de l'image pour obtenir l'URI de l'image à partir du service d'image et charge l'image à partir du stockage d'image
Étape 11) coup d'œil-api valide le jeton d'authentification avec la clé de voûte et après cela, nova-compute obtient les métadonnées de l'image
Étape 12) Nova-compute effectue l'appel REST en transmettant le jeton d'authentification à l'API réseau (Neutron) pour allouer et configurer le réseau afin que vm obtienne l'adresse IP
Étape 13) Neutron-server valide le jeton d'authentification avec la clé de voûte, puis nova-compute récupère les informations réseau.
Étape 14) Nova-Compute effectue l'appel REST en transmettant le jeton d'authentification à l'API Volume pour attacher le volume à l'instance ou à la VM.
Étape 15) cinder-api valide le jeton d'authentification avec la clé de voûte, puis nova-compute obtient les informations de stockage de bloc.
Étape 16) nova-compute génère des données pour le pilote de l'hyperviseur et exécute la requête sur l'hyperviseur à l'aide de libvirt ou de l'API, puis enfin une machine virtuelle est créée sur l'hyperviseur. Nous pouvons voir cette machine virtuelle dans le tableau de bord et également en utilisant la commande "nova list".
C'est tout de l'article, j'espère que vous trouverez cet article informatif. S'il vous plaît partagez vos commentaires et commentaires.