Errores de aprovisionamiento de extensiones de máquina virtual en virtual Machine Scale Sets
En este artículo se proporcionan instrucciones sobre cómo resolver los errores VMExtensionProvisioningError, VMExtensionHandlerNonTransientError o VMExtensionProvisioningTimeout que aparecen al intentar implementar, actualizar, cambiar la imagen, iniciar o escalar un conjunto de escalado de máquinas virtuales.
Nota:
En el contexto de los conjuntos de escalado de máquinas virtuales, la "VM" de estos mensajes de error hace referencia a una instancia de un conjunto de escalado de máquinas virtuales específico.
Síntomas
Verá los errores VMExtensionProvisioningError, VMExtensionHandlerNonTransientError o VMExtensionProvisioningTimeout , como en los ejemplos siguientes:
'statusMessage': '{\\'status\\':\\'Failed\\',\\'error\\':{\\'code\\':\\'ResourceOperationFailure\\',\\'message\\':\\'The resource operation completed with terminal provisioning state 'Failed'.\\',\\'details\\':[{\\'code\\':\\'VMExtensionProvisioningError\\',\\'message\\':\\'Multiple VM extensions failed to be provisioned on the VM. Please see the VM extension instance view for other failures.
{'status': 'Failed','error': {'code':'VMExtensionHandlerNonTransientError','message': 'The handler for VM extension type 'Microsoft.EnterpriseCloud.Monitoring.OmsAgentForLinux' has reported terminal failure for VM extension 'OmsAgentForLinux' with error message: '[ExtensionOperationError] Non-zero exit code: 10
'statusMessage': '{\\'status\\':\\'Failed\\',\\'error\\':{\\'code\\':\\'ResourceOperationFailure\\',\\'message\\':\\'The resource operation completed with terminal provisioning state 'Failed'.\\',\\'details\\':[{\\'code\\':\\'VMExtensionProvisioningTimeout\\',\\'message\\':\\'Provisioning of VM extension configure-settings has timed out. Extension provisioning has taken too long to complete.
Causa
Una extensión de máquina virtual está bloqueada o ha producido un error durante el estado de aprovisionamiento.
Obtenga más información sobre el error de extensión.
Para empezar a resolver este error, primero debe determinar qué extensiones e instancias se ven afectadas. Para ello, ejecute el siguiente comando de la interfaz de la línea de comandos de Azure (CLI de Azure):
az vmss list-instances --resource-group MyResourceGroup --name MyVmss --query "[].{instanceId:instanceId, extension:resources[].id, extProvisioningState:resources[].provisioningState}"
La salida de este comando mostrará los estados de aprovisionamiento de las extensiones en cada instancia. En la salida de ejemplo siguiente se muestra cómo esta información de extensión se agrupa por identificador de instancia.
Dentro de cada sección dedicada a una instancia determinada, la lista "extProvisioningState" en la parte superior muestra los estados de aprovisionamiento de las extensiones instaladas en esa instancia. Esta lista va seguida de la lista "extensión", que muestra los nombres de las extensiones en el mismo orden correspondiente.
Por ejemplo, en la salida del ejemplo siguiente, el primer estado de aprovisionamiento de esta instancia, "Failed", corresponde a la primera extensión, "customScript". Al hacer coincidir los estados de aprovisionamiento con las extensiones enumeradas, también puede determinar que en este ejemplo, las extensiones segunda y tercera enumeradas se aprovisionaron correctamente en la misma instancia.
Intento de escalar horizontalmente el conjunto de escalado de máquinas virtuales
Si no se ha producido un error en cada instancia de la extensión, agregue nuevas instancias al conjunto de escalado de máquinas virtuales y compruebe si el aprovisionamiento de la extensión se realiza correctamente. Si se ejecuta correctamente, elimine las instancias en las que se ha producido un error en el aprovisionamiento de la extensión.
Lectura de registros en instancias afectadas
Para obtener más información sobre la causa del error, inicie sesión en las instancias afectadas. Según el sistema operativo del conjunto de escalado de máquinas virtuales y la extensión afectada, vaya a los registros adecuados y revise el período de tiempo afectado:
- Conjuntos de escalado de máquinas virtuales Windows: C:\WindowsAzure\logs\plugins\ExtensionName\Extension.log
- Conjuntos de escalado de máquinas virtuales Linux: /var/log/plugins/ExtensionName/Extension.log
Compruebe que la extensión con errores sigue los procedimientos recomendados
Si la extensión es personalizable, como La extensión de script personalizado (CSE) o Desired State Configuration (DSC), compruebe que sigue todos los requisitos previos necesarios y los procedimientos recomendados.
- Procedimientos recomendados de extensión de script personalizado
- Requisitos previos de Desired State Configuration
Reinstalar la extensión
En la hoja Extensiones del conjunto de escalado de máquinas virtuales, seleccione la extensión con los errores de aprovisionamiento.
Haga clic en Desinstalar.
En la hoja Extensiones , haga clic en Agregar.
Seleccione y vuelva a instalar la misma extensión.
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.