Diagnóstico de problemas de conexión para clústeres de Kubernetes habilitados para Azure Arc

Si tiene problemas para conectar un clúster a Azure Arc, es probable que se deba a uno de los problemas que se enumeran aquí. Proporcionamos dos diagramas de flujo con ayuda guiada: uno si no usa un servidor proxy y otro que se aplica si la conexión de red usa un servidor proxy.

Sugerencia

Los pasos de este diagrama de flujo se aplican tanto si usa la CLI de Azure como Azure PowerShell para conectar el clúster. Sin embargo, algunos de los pasos requieren el uso de la CLI de Azure. Si aún no ha instalado la CLI de Azure, asegúrese de hacerlo antes de comenzar.

Conexiones sin un proxy

Revise este diagrama de flujo para diagnosticar el problema al intentar conectar un clúster a Azure Arc sin un servidor proxy. A continuación se ofrecen más detalles sobre cada paso.

Flowchart showing a visual representation of checking for connection issues when not using a proxy.

¿La identidad de Azure tiene permisos suficientes?

Revise los requisitos previos para conectar un clúster y asegúrese de que la identidad que usa para conectar el clúster tiene los permisos necesarios.

¿Ejecuta la versión más reciente de la CLI de Azure?

Asegúrese de que tiene la última versión instalada.

Si ha conectado el clúster mediante Azure PowerShell, asegúrese de que ejecuta la versión más reciente.

¿La extensión connectedk8s es la versión más reciente?

Actualice la extensión connectedk8s de la CLI de Azure a la versión más reciente mediante la ejecución de este comando:

az extension update --name connectedk8s

Si aún no ha instalado la extensión, puede hacerlo ejecutando el siguiente comando:

az extension add --name connectedk8s

¿Kubeconfig apunta al clúster correcto?

Ejecute kubectl config get-contexts para confirmar el nombre del contexto de destino. A continuación, establezca el contexto predeterminado en el clúster correcto mediante la ejecución de kubectl config use-context <target-cluster-name>.

¿Todos los proveedores de recursos necesarios están registrados?

Asegúrese de que los proveedores de recursos de Microsoft.Kubernetes, Microsoft.KubernetesConfiguration y Microsoft.ExtendedLocation están registrados.

¿Se cumplen todos los requisitos de red?

Revise los requisitos de red y asegúrese de que los puntos de conexión necesarios no estén bloqueados.

¿Se están ejecutando todos los pods del espacio de nombres azure-arc?

Si todo funciona correctamente, todos los pods deben estar en estado Running. Ejecute kubectl get pods -n azure-arc para confirmar si el estado de un pod no es Running.

¿Sigue teniendo problemas?

Los pasos anteriores resolverán muchos problemas comunes de conexión, pero si aún no puede conectarse correctamente, genere un archivo de registro de solución de problemas y abra una solicitud de soporte técnico para que podamos investigar el problema aún más.

Para generar el archivo de registro de solución de problemas, ejecute el siguiente comando:

az connectedk8s troubleshoot -g <myResourceGroup> -n <myK8sCluster>

Al crear la solicitud de soporte técnico, en la sección Detalles adicionales, use la opción Carga de archivos para cargar el archivo de registro generado.

Conexiones con un servidor proxy

Si usa un servidor proxy en al menos una máquina, complete los cinco primeros pasos del diagrama de flujo que no es de proxy (a través del registro del proveedor de recursos) para conocer los pasos básicos de solución de problemas. Después, si sigue experimentando problemas, revise el siguiente diagrama de flujo para ver los pasos de solución de problemas adicionales. A continuación se ofrecen más detalles sobre cada paso.

Flowchart showing a visual representation of checking for connection issues when using a proxy.

¿La máquina ejecuta comandos detrás de un servidor proxy?

Si la máquina ejecuta comandos detrás de un servidor proxy, deberá establecer todas las variables de entorno necesarias. Para obtener más información, consulte Conexión mediante un servidor proxy de salida.

Por ejemplo:

export HTTP_PROXY="http://<proxyIP>:<proxyPort>"
export HTTPS_PROXY="https://<proxyIP>:<proxyPort>"
export NO_PROXY="<cluster-apiserver-ip-address>:<proxyPort>"

¿El servidor proxy solo acepta certificados de confianza?

Asegúrese de incluir la ruta de acceso del archivo de certificado incluyendo --proxy-cert <path-to-cert-file> al ejecutar el comando az connectedk8s connect.

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>

¿El servidor proxy puede acceder a los puntos de conexión de red necesarios?

Revise los requisitos de red y asegúrese de que los puntos de conexión necesarios no estén bloqueados.

¿El servidor proxy solo usa HTTP?

Si el servidor proxy solo usa HTTP, puede usar proxy-http para ambos parámetros.

Si el servidor proxy está configurado con HTTP y HTTPS, ejecute el comando az connectedk8s connect con los parámetros --proxy-https y --proxy-http especificados. Asegúrese de que usa --proxy-http para el proxy HTTP y --proxy-https para el proxy HTTPS.

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port>  

¿El servidor proxy requiere intervalos de omisión para la comunicación entre servicios?

Si necesita intervalos de omisión, use --proxy-skip-range <excludedIP>,<excludedCIDR> en el comando az connectedk8s connect.

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR>

¿Se están ejecutando todos los pods del espacio de nombres azure-arc?

Si todo funciona correctamente, todos los pods deben estar en estado Running. Ejecute kubectl get pods -n azure-arc para confirmar si el estado de un pod no es Running.

¿Sigue teniendo problemas?

Los pasos anteriores resolverán muchos problemas comunes de conexión, pero si aún no puede conectarse correctamente, genere un archivo de registro de solución de problemas y abra una solicitud de soporte técnico para que podamos investigar el problema aún más.

Para generar el archivo de registro de solución de problemas, ejecute el siguiente comando:

az connectedk8s troubleshoot -g <myResourceGroup> -n <myK8sCluster>

Al crear la solicitud de soporte técnico, en la sección Detalles adicionales, use la opción Carga de archivos para cargar el archivo de registro generado.

Pasos siguientes