Solución de problemas del motor de AKS en Azure Stack Hub
Es posible que encuentre un problema al implementar o trabajar con el motor de AKS en Azure Stack Hub. En este artículo se examinan los pasos para solucionar problemas de implementación del motor de AKS. Recopile información sobre el motor de AKS, recopile registros de Kubernetes y revise los códigos de error de la extensión de script personalizado. También puede abrir un problema de GitHub para el motor de AKS.
Nota:
Para AKSe versión 0.75.3 y posteriores, los aks-engine
comandos siguientes comenzarán por en aks-engine-azurestack
lugar de aks-engine
.
Solución de problemas de la instalación del motor de AKS
Si se produjo un error en los pasos de instalación anteriores, puede instalar el motor de AKS mediante el administrador de paquetes de GoFish. GoFish se describe a sí mismo como un Homebrew multiplataforma.
Puede encontrar instrucciones para usar GoFish para instalar el motor de AKS aquí.
Recopilación de registros de nodo y clúster
Puede encontrar las instrucciones sobre la recopilación de registros de nodo y clúster en Recuperación de registros de nodo y clúster.
Requisitos previos
En esta guía se da por supuesto que ya ha descargado la CLI de Azure y el motor de AKS.
En esta guía también se da por supuesto que ha implementado un clúster mediante el motor de AKS. Para más información, consulte Implementación de un clúster de Kubernetes con el motor de AKS en Azure Stack Hub .
Recuperación de registros
El comando aks-engine get-logs
puede ser útil para solucionar problemas con el clúster. El comando genera, recopila y descarga un conjunto de archivos en la estación de trabajo. Los archivos incluyen la configuración del nodo, el estado y la configuración del clúster, y la configuración de los archivos de registro.
En un nivel alto: el comando funciona estableciendo una sesión SSH en cada nodo, ejecutando un script de recopilación de registros que recopila y comprima los archivos pertinentes y descargando el archivo .ZIP en el equipo local.
Autenticación SSH
Necesitará una clave privada SSH válida para establecer una sesión SSH en los nodos de Linux del clúster. Las credenciales de Windows se almacenan en el modelo de API y se cargarán desde allí. Establezca windowsprofile.sshEnabled
en "true" para habilitar SSH en los nodos de Windows.
Carga de registros en un contenedor de la cuenta de almacenamiento
Una vez que los registros del clúster se recuperaron correctamente, AKS Engine puede guardarlos en un contenedor de la cuenta de almacenamiento de Azure si se establece el parámetro opcional --upload-sas-url
. AKS Engine espera que el nombre del contenedor forma parte de la dirección URL de SAS proporcionada. El formato esperado es https://{blob-service-uri}/{container-name}?{sas-token}
.
Nota:
Las cuentas de almacenamiento en nubes personalizadas que usan el proveedor de identidades de AD FS no se admiten todavía.
Los nodos no pueden unirse al clúster
De forma predeterminada, aks-engine get-logs
recopila registros de los nodos que se unieron correctamente al clúster. Para recopilar registros de VM que no pudieron unirse al clúster, establezca la marca --vm-names
:
--vm-name k8s-pool-01,k8s-pool-02
Uso de aks-engine get-logs
Suponiendo que tiene un clúster implementado y el modelo de API usado originalmente para implementar ese clúster se almacena en _output/<dnsPrefix>/apimodel.json
, puede recopilar registros que ejecutan un comando como:
aks-engine get-logs \
--location <location> \
--api-model _output/<dnsPrefix>/apimodel.json \
--ssh-host <dnsPrefix>.<location>.cloudapp.azure.com \
--linux-ssh-private-key ~/.ssh/id_rsa
Parámetros
Parámetro | Obligatorio | Descripción |
---|---|---|
--location | Sí | Ubicación de Azure del grupo de recursos del clúster. |
--api-model | Sí | Ruta de acceso al modelo de API generado para el clúster. |
--ssh-host | Sí | FQDN, o dirección IP, de un cliente de escucha SSH que pueda acceder a todos los nodos del clúster. |
--linux-ssh-private-key | Yes | Ruta de acceso a una clave privada SSH que se puede usar para crear una sesión remota en los nodos de Linux del clúster. |
--output-directory | No | Directorio de salida, derivado de si --api-model falta. |
--control-plane-only | No | Recopile solo los registros de los nodos del plano de control. |
--vm-names | No | Recopile solo los registros de las máquinas virtuales especificadas (nombres separados por comas). |
--upload-sas-url | No | La dirección URL de SAS de la cuenta de almacenamiento de Azure para cargar los registros recopilados. |
Examen de los códigos de error de extensión de script personalizado
El motor de AKS genera un script para cada servidor Ubuntu como un recurso para que la extensión de script personalizado (CSE) realice tareas de implementación. Si el script produce un error, registrará un error en /var/log/azure/cluster-provision.log
. Los errores se muestran en el portal. El código de error puede ser útil para averiguar el caso del problema. Para más información sobre los códigos de salida de CSE, consulte cse_helpers.sh
.
Entrega de registros de Kubernetes a un ingeniero del servicio de soporte técnico de Microsoft
Si después de recopilar y examinar los registros sigue sin poder resolver el problema, inicie el proceso de creación de una incidencia de soporte técnico y proporcione los registros recopilados.
El operador puede combinar los registros generados junto con otros registros del sistema que pueda necesitar el soporte técnico de Microsoft. El operador puede hacer que estén disponibles para Microsoft.
Puede proporcionar registros de Kubernetes de varias maneras:
- Puede ponerse en contacto con un operador de Azure Stack Hub. El operador usa la información de los registros almacenados en el archivo .ZIP para crear el caso de soporte técnico.
- Si tiene la dirección URL de SAS de una cuenta de almacenamiento donde puede cargar los registros de Kubernetes, puede incluir el siguiente comando y marca con la dirección URL de SAS para guardar los registros en la cuenta de almacenamiento:
Para obtener instrucciones, consulte Carga de registros en un contenedor de la cuenta de almacenamiento.aks-engine get-logs -upload-sas-url <SAS-URL>
- Si es un operador en la nube, puede hacer lo siguiente:
- Use la hoja Ayuda y soporte técnico del portal de administración de Azure Stack Hub para cargar registros. Para obtener instrucciones, consulte Envío de registros ahora con el portal de administración.
- Use el cmdlet Get-AzureStackLog de PowerShell mediante el punto de conexión con privilegios (PEP). Para obtener instrucciones, consulte Envío de registros ahora con PowerShell.
Apertura de incidencias de GitHub
Si no puede resolver un error de implementación, puede abrir una incidencia de GitHub.
Abra una incidencia de GitHub en el repositorio del motor de AKS.
Agregue un título con el siguiente formato: Error CSE:
exit code <INSERT_YOUR_EXIT_CODE>
.Incluya la siguiente información en la incidencia:
El archivo de configuración del clúster,
apimodel.json
, que se usa para implementar el clúster. Quite todos los secretos y claves antes de publicarlo en GitHub.La salida del siguiente comando kubectl
get nodes
.Contenido de
/var/log/azure/cluster-provision.log
en un nodo incorrecto.
Pasos siguientes
- Obtenga información sobre el motor de AKS en Azure Stack Hub.