Solución de problemas básicos de inicio del clúster de AKS
En este artículo se describen los métodos básicos de solución de problemas que se deben usar si no se puede iniciar un clúster de Microsoft Azure Kubernetes Service (AKS) correctamente.
Requisitos previos
CLI de Azure (versión 2.0.59 o posterior).
Herramienta kubectl de Kubernetes. Para instalar kubectl mediante la CLI de Azure, ejecute el comando az aks install-cli .
Visualización de errores desde la CLI de Azure
Al iniciar clústeres mediante la CLI de Azure, los errores se registran como salida si se produce un error en la operación. A continuación se muestra cómo puede aparecer un comando, una entrada de usuario y una salida de operación en una Bash
consola:
$ az aks start --resource-group myResourceGroup --name MyManagedCluster
(VMExtensionProvisioningError) Unable to establish outbound connection from agents, please see https://learn.microsoft.com/en-us/troubleshoot/azure/azure-kubernetes/error-code-outboundconnfailvmextensionerror and https://aka.ms/aks-required-ports-and-addresses for more information.
Details: instance 3 has extension error details : {vmssCSE error messages : {vmssCSE exit status=50, output=AGE_SHA=sha-16fd35
Estos errores suelen contener descripciones detalladas de lo que salió mal en la operación de inicio del clúster y proporcionan vínculos a artículos que contienen más detalles. Además, puede usar nuestros artículos de solución de problemas como referencia en función del error que genera una operación de la CLI de Azure.
Ver los detalles del error en el Azure Portal
Para ver los detalles sobre los errores en el Azure Portal, examine el registro de actividad de Azure. Para buscar la lista de registros de actividad en el Azure Portal, busque en Registro de actividad. O bien, seleccione Notificaciones (el icono de campana) y, a continuación, seleccione Más eventos en el registro de actividad.
La lista de registros de la página Registro de actividad contiene una entrada de línea en la que el valor de la columna Nombre de operación se denomina Iniciar clúster administrado. El valor De evento iniciado por columna correspondiente se establece en el nombre de la cuenta profesional o educativa. Si la operación se realiza correctamente, el valor de la columna Estado muestra Aceptado.
¿Qué ocurre si se produjo un error en su lugar? En ese caso, el campo Iniciar estado de la operación de clúster administrado muestra Error. A diferencia de las operaciones para crear componentes de clúster, aquí debe expandir la entrada de operación con errores para revisar las entradas de suboperación. Los nombres de suboperación típicos son acciones de directiva, como la acción de directiva "audit" y la acción de directiva "auditIfNotExists". Algunas suboperaciones seguirán mostrando que se realizaron correctamente.
Para investigar más a fondo, puede seleccionar una de las suboperaciones con errores. Se abre un panel lateral para que pueda revisar más información sobre la suboperación. Puede solucionar problemas de valores para campos como Resumen, JSON e Historial de cambios. El campo JSON contiene el texto de salida del error en formato JSON y normalmente proporciona la información más útil.
Visualización de la información del clúster
También puede generar información de clúster para ayudarle a solucionar problemas a través de la hoja Diagnosticar y resolver problemas de la Azure Portal. Para acceder a esta característica, siga estos pasos:
En el Azure Portal, busque y seleccione Servicios de Kubernetes.
Seleccione el nombre del clúster de AKS.
En el panel de navegación de la página del clúster de AKS, seleccione Diagnosticar y resolver problemas.
En la página Diagnosticar y resolver problemas , seleccione el vínculo Cluster Insights . La herramienta cluster insights analiza el clúster y, a continuación, proporciona una lista de sus conclusiones en la sección Observaciones y soluciones de la página Cluster Insights .
Seleccione uno de los resultados para ver más información sobre un problema y sus posibles soluciones.
Visualización de recursos en el Azure Portal
En el Azure Portal, es posible que desee ver los recursos que se crearon cuando se creó el clúster. Normalmente, estos recursos se encuentran en un grupo de recursos que comienza con MC_. El grupo de recursos del clúster administrado podría tener un nombre como MC_MyResourceGroup_MyManagedCluster_<location-code>. Sin embargo, el nombre puede ser diferente si creó el clúster mediante un grupo de recursos de clúster administrado personalizado.
Para buscar el grupo de recursos, busque y seleccione Grupos de recursos en el Azure Portal y, a continuación, seleccione el grupo de recursos en el que se creó el clúster. La lista de recursos se muestra en la página Información general del grupo de recursos.
Advertencia
Se recomienda no modificar los recursos del grupo de recursos de MC_ . Esta acción puede provocar efectos no deseados en el clúster de AKS.
Para revisar el estado de un conjunto de escalado de máquinas virtuales, puede seleccionar el nombre del conjunto de escalado en la lista de recursos del grupo de recursos. Puede tener un nombre similar a aks-nodepool1-12345678-vmss y un valor type del conjunto de escalado de máquinas virtuales. El estado del conjunto de escalado aparece en la parte superior de la página Información general del grupo de nodos y se muestran más detalles en el encabezado Essentials. Si la implementación no se realizó correctamente, el estado mostrado es Error.
Para todos los recursos, puede revisar los detalles para comprender mejor por qué se produjo un error en la implementación. Para un conjunto de escalado, puede seleccionar el texto Estado con error para ver detalles sobre el error. Los detalles están en una fila que contiene las columnas Status, Level y Code . En el ejemplo siguiente se muestra una fila de valores de columna.
Column | Valor de ejemplo |
---|---|
Estado | Error de aprovisionamiento |
Nivel | Error |
Código | ProvisioningState/failed/VMExtensionProvisioningError |
Seleccione la fila para ver el campo Mensaje . Contiene aún más información sobre ese error. Por ejemplo, el campo Mensaje de la fila de ejemplo comienza con el texto siguiente:
La máquina virtual ha notificado un error al procesar la extensión "vmssCSE". Mensaje de error: "Enable failed: failed to execute command: command terminated with exit status=50 [stdout] [stdout] [stderr] 0 0 0 --: Con esta información, puede concluir que las máquinas virtuales del conjunto de escalado han producido un error y el estado de salida generado es 50.
Uso de comandos de Kubectl
Para obtener otra opción que ayude a solucionar errores en el clúster, escriba comandos kubectl para obtener detalles sobre los recursos que se implementaron en el clúster. Para usar kubectl, inicie sesión primero en el clúster de AKS:
az aks get-credentials --resource-group MyResourceGroup --name MyManagedCluster
Según el tipo de error y cuándo se produjo, es posible que no pueda iniciar sesión en el clúster para obtener más detalles. Pero, en general, si el clúster se creó y aparece en el Azure Portal, debería poder iniciar sesión y ejecutar comandos de kubectl.
Visualización de nodos de clúster (obtención de nodos kubectl)
Para obtener más detalles para determinar el estado de los nodos, escriba el comando kubectl get nodes para ver los nodos del clúster. En este ejemplo, no hay ningún nodo que informe en el clúster:
$ kubectl get nodes
No resources found
Visualización de pods en el espacio de nombres del sistema (kubectl get pods)
Ver los pods en el espacio de nombres kube-system también es una buena manera de solucionar el problema. Este método le permite ver el estado de los pods del sistema de Kubernetes. En este ejemplo, se escribe el kubectl get pods
comando :
$ kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-845757d86-7xjqb 0/1 Pending 0 78m
coredns-autoscaler-5f85dc856b-mxkrj 0/1 Pending 0 77m
konnectivity-agent-67f7f5554f-nsw2g 0/1 Pending 0 77m
konnectivity-agent-8686cb54fd-xlsgk 0/1 Pending 0 65m
metrics-server-6bc97b47f7-dfhbr 0/1 Pending 0 77m
Describir el estado de un pod (kubectl describe pod)
Al describir el estado de los pods, puede ver los detalles de configuración y los eventos que se han producido en los pods. Ejecute el comando kubectl describe pod:
$ kubectl describe pod coredns-845757d86-7xjqb -n kube-system
Name: coredns-845757d86-7xjqb
Namespace: kube-system
Priority: 2000001000
Priority Class Name: system-node-critical
Node: <none>
Labels: k8s-app=kube-dns
kubernetes.io/cluster-service=true
pod-template-hash=845757d86
version=v20
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 24m (x1 over 25m) default-scheduler no nodes available to schedule pods
Warning FailedScheduling 29m (x57 over 84m) default-scheduler no nodes available to schedule pods
En la salida del comando, puede ver que el pod no se puede implementar en un nodo porque no hay nodos disponibles.
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.