Solución de problemas básicos de conexión de clúster con el servidor api

En este artículo se analizan los problemas de conexión a un clúster de azure kubernetes Service (AKS) cuando no se puede llegar al servidor api del clúster a través de la herramienta de línea de comandos del clúster de Kubernetes (kubectl) o cualquier otra herramienta, como usar la API de REST a través de un lenguaje de programación.

Requisitos previos

Causa raíz y soluciones

Los problemas de conexión al servidor api pueden producirse por muchas razones, pero la causa raíz suele estar relacionada con un error con uno de estos elementos:

  • Red
  • Autenticación
  • Authorization

Puede seguir estos pasos comunes de solución de problemas para comprobar la conectividad con el servidor api del clúster de AKS:

  1. Escriba el siguiente comando az aks show en la CLI de Azure. Este comando obtiene el nombre de dominio completo (FQDN) del clúster de AKS.

    az aks show --resource-group <cluster-resource-group> --name <cluster-name> --query fqdn
    
  2. Con el FQDN, compruebe si el servidor api es accesible desde el equipo cliente mediante la búsqueda del servidor de nombres (nslookup), la dirección URL del cliente (rizo) y los comandos telnet :

    # Check if the DNS Resolution is working:
    $ nslookup <cluster-fqdn>  
    
    # Then check if the API Server is reachable:
    $ curl -Iv https://<cluster-fqdn>
    $ telnet <cluster-fqdn> 443
    
  3. Si el clúster de AKS es privado, asegúrese de ejecutar el comando desde una máquina virtual (VM) que pueda tener acceso a azure virtual network del clúster de AKS. Consulte Opciones para conectarse al clúster privado.

  4. Si es necesario, siga los pasos del artículo de solución de problemas La dirección IP del cliente no puede tener acceso al servidor de API, por lo que el servidor api agrega la dirección IP de cliente a los intervalos IP que autoriza.

  5. Asegúrese de que la versión de kubectl en el equipo cliente no esté dos o más versiones secundarias detrás de la versión del clúster de AKS de esa herramienta. Para instalar la versión más reciente de kubectl, ejecute el comando az aks install-cli en la CLI de Azure. A continuación, puede ejecutar el comando kubectl version para comprobar el número de versión de la nueva instalación.

    Por ejemplo, en Linux se ejecutarían estos comandos:

    sudo az aks install-cli
    kubectl version --client
    

    Para otros sistemas operativos cliente, use estas instrucciones de instalación de kubectl.

  6. Si es necesario, siga los pasos del artículo de solución de problemas El archivo de configuración no está disponible al conectarse, por lo que el archivo de configuración de Kubernetes (config) es válido y se puede encontrar en el momento de la conexión.

  7. Si es necesario, siga los pasos del artículo de solución de problemas El usuario no puede obtener recursos de clúster, por lo que puede enumerar los detalles de los nodos del clúster.

  8. Si usa un firewall para controlar el tráfico de salida de los nodos de trabajo de AKS, asegúrese de que el firewall permite las reglas de salida mínimas necesarias para AKS.

  9. Asegúrese de que el grupo de seguridad de red asociado a nodos AKS permite la comunicación en el puerto TCP 10250 dentro de los nodos aks.

Para obtener otros pasos comunes de solución de problemas, consulte I'm receiving TCP timeouts when using kubectl or other third-party tools connecting to the API server.