¿Alguna vez ha pensado en lo que sucedió en segundo plano cada vez que creamos una instancia o una máquina virtual, ya sea a través de Openstack cli o el tablero? En este artículo, explicaremos paso a paso la creación de VM o instancias en Openstack. Todos los componentes de Openstack se comunican entre sí con la API mediante el token de autenticación.
Creación de una máquina virtual en OpenStack a través de OpenStack CLI
Obtenga el archivo de credenciales y luego ejecute el comando 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
Una vez que se ejecuta el comando de arranque nova, los siguientes pasos se ejecutan detrás de escena,
Paso 1) Horizon Dashboard o OpenStack CLI obtiene las credenciales del usuario y se autentica con el servicio de identidad a través de la API REST
- El servicio de identidad (Keystone) autentica al usuario con las credenciales de usuario y luego genera y envía un token de autenticación, ese token de autenticación que se utilizará para enviar la solicitud a otros componentes a través de REST-Call
Paso 2) El Dashboard o OpenStack CLI convierte la nueva solicitud de instancia especificada en la instancia de lanzamiento o el comando de arranque nova en una solicitud de API REST y la envía a nova-api
Paso 3) Luego, el servicio nova-api recibe la solicitud y la envía al servicio de identidad (Keystone) para la validación del token de autenticación y el permiso de acceso.
- El servicio Keystone valida el token y envía los encabezados de autenticación actualizados con roles junto con los permisos
Etapa 4) Después de obtener la respuesta de keystone, nova-api verifica si hay conflictos con nova-database y luego crea una entrada inicial en la base de datos para una nueva instancia o VM.
Paso: 5) nova-api envía la solicitud rpc.call a nova-scheduler esperando obtener una entrada de instancia actualizada con la identificación de host especificada
Paso: 6) Ahora nova-scheduler selecciona la solicitud de la cola
Paso: 7) nova-scheduler habla con nova-database para localizar un host apropiado utilizando un mecanismo de filtrado y pesaje,
- nova-scheduler devuelve la entrada de instancia actualizada con la ID de host adecuada después de filtrar y sopesar
- nova-scheduler envía la solicitud rpc.cast a nova computing para lanzar una instancia en el host apropiado
Paso: 8) nova-compute selecciona la solicitud de la cola y envía la solicitud rpc.call a nova-conductor para obtener la VM o la información de la instancia, como la identificación del host y el tipo (RAM, CPU y disco)
Paso: 9) nova-conductor toma la solicitud de la cola y se comunica con nova-database,
- nova-conductor obtiene la información de la instancia
- ahora nova-compute selecciona la información de la instancia de la cola
Paso: 10) nova-compute se conecta a la API de la vista haciendo una llamada REST usando el token de autenticación y luego nova-compute usa la identificación de la imagen para obtener el URI de la imagen del servicio de imágenes y carga la imagen desde el almacenamiento de imágenes
Paso: 11) look-api valida el token de autenticación con keystone y luego nova-compute obtiene los metadatos de la imagen
Paso: 12) Nova-compute realiza la llamada REST pasando el token de autenticación a la API de red (Neutron) para asignar y configurar la red para que vm obtenga la dirección IP
Paso: 13) El servidor de neutrones valida el token de autenticación con keystone y, luego, el nova-compute recupera la información de la red.
Paso: 14) Nova-Compute realiza la llamada REST al pasar el token de autenticación a la API de volumen para adjuntar el volumen a la instancia o máquina virtual.
Paso: 15) cinder-api valida el token de autenticación con keystone y luego nova-compute obtiene la información de almacenamiento de bloques.
Paso: 16) nova-compute genera datos para el controlador del hipervisor y ejecuta la solicitud en el hipervisor mediante libvirt o API y, finalmente, se crea una máquina virtual en el hipervisor. Podemos ver esa VM en Dashboard y también usando el comando «nova list».
Eso es todo del artículo, espero que encuentre este artículo informativo. Por favor, comparta sus opiniones y comentarios.