Solución de problemas básicos de creación de clústeres 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 crear o implementar un clúster de Microsoft Azure Kubernetes Service (AKS) correctamente.

Requisitos previos

Visualización de errores desde la CLI de Azure

Al crear 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 consola de Bash:

$ az aks create --resource-group myResourceGroup \
> --name MyManagedCluster \
> --load-balancer-sku standard \
> --vnet-subnet-id /subscriptions/01234567-89ab-cdef-0123-456789abcdef/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/aks_demo_vnet/subnets/AKS

It is highly recommended to use USER assigned identity (option --assign-identity) when you want to bring you own subnet, which will have no latency for the role assignment to take effect. When you SYSTEM assigned identity, azure-cli will grant Network Contributor role to the system assigned identity after the cluster is created, and the role assignment will take some time to take effect, see https://learn.microsoft.com/azure/aks/use-managed-identity, proceed to create cluster with system assigned identity? (y/N): y

(ControlPlaneAddOnsNotReady) Pods not in Running status: konnectivity-agent-67f7f5554f-nsw2g,konnectivity-agent-8686cb54fd-xlsgk,metrics-server-6bc97b47f7-dfhbr,coredns-845757d86-7xjqb,coredns-autoscaler-5f85dc856b-mxkrj

Code: ControlPlaneAddOnsNotReady

Message: Pods not in Running status: konnectivity-agent-67f7f5554f-nsw2g,konnectivity-agent-8686cb54fd-xlsgk,metrics-server-6bc97b47f7-dfhbr,coredns-845757d86-7xjqb,coredns-autoscaler-5f85dc856b-mxkrj

Estos errores suelen contener descripciones detalladas de lo que salió mal en la creación 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 Crear o Actualizar 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. También verá entradas de suboperación para la creación de los componentes del clúster, como los siguientes nombres de operación:

  • Creación o actualización de una tabla de rutas
  • Creación o actualización de un grupo de seguridad de red
  • Actualizar la creación de identidad asignada por el usuario
  • Crear o actualizar Load Balancer
  • Creación o actualización de una dirección IP pública
  • Creación de una asignación de roles
  • Actualizar grupo de recursos

En estas entradas de suboperación, el valor Estado es Correcto y el campo Evento iniciado por se establece en AzureContainerService.

¿Qué ocurre si se produjo un error en su lugar? En ese caso, el campo Create or Update Managed Cluster operation Status (Crear o actualizarestado 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 de las 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

¿Se creó el clúster en el Azure Portal y es visible allí? Si esto es así, puede generar información de clúster que le ayudará a solucionar problemas. Para acceder a esta característica, siga estos pasos:

  1. En el Azure Portal, busque y seleccione Servicios de Kubernetes.

  2. Seleccione el nombre del clúster de AKS.

  3. En el panel de navegación de la página del clúster de AKS, seleccione Diagnosticar y resolver problemas.

  4. 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 .

  5. 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 en 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. Podría tener un nombre similar a aks-nodepool1-12345678-vmss y tendría un valor type de 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 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 en el texto siguiente:

La máquina virtual ha notificado un error al procesar la extensión "vmssCSE". Mensaje de error: "Error al habilitar: no se pudo ejecutar el comando: el comando finalizó con exit status=50 [stdout] [stderr] 0 0 0 --:

Con esta información, puede concluir que se produjo un error en las máquinas virtuales del conjunto de escalado y se generó el estado de salida 50.

Nota:

Si la implementación del clúster no llegó al punto donde se crearon estos recursos, es posible que no pueda revisar el grupo de recursos del clúster administrado en el Azure Portal.

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 puede implementarse 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.