Share via


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 Ubicación de Azure del grupo de recursos del clúster.
--api-model Ruta de acceso al modelo de API generado para el clúster.
--ssh-host 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:
    aks-engine get-logs -upload-sas-url <SAS-URL>
    
    Para obtener instrucciones, consulte Carga de registros en un contenedor de la cuenta de almacenamiento.
  • Si es un operador en la nube, puede hacer lo siguiente:

Apertura de incidencias de GitHub

Si no puede resolver un error de implementación, puede abrir una incidencia de GitHub.

  1. Abra una incidencia de GitHub en el repositorio del motor de AKS.

  2. Agregue un título con el siguiente formato: Error CSE: exit code <INSERT_YOUR_EXIT_CODE>.

  3. 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 kubectlget nodes.

    • Contenido de /var/log/azure/cluster-provision.log en un nodo incorrecto.

Pasos siguientes