El archivo de configuración no está disponible al conectarse

En este artículo se describe cómo corregir los problemas que se producen cuando no se puede conectar a un clúster de Azure Kubernetes Service (AKS) debido a que falta un archivo de configuración o no es válido.

Requisitos previos

Síntomas

Durante un intento de conexión de clúster, aparece un mensaje de error similar al texto siguiente:

Unable to connect to the server: dial tcp [::1]:8080: connectex: No connection could be made because the target machine actively refused it. 

error: You must be logged in to the server (the server has asked for the client to provide credentials)

Causas

La herramienta kubectl y otras herramientas de conexión de Kubernetes usan un archivo de configuración local denominado config. El archivo de configuración contiene credenciales de autenticación y detalles para conectarse al clúster. De forma predeterminada:

Por lo tanto, lo que sucede durante un intento de sesión de Kubernetes depende del usuario que ejecuta el comando kubectl. Si ha iniciado sesión como usuario A y ha ejecutado ambos comandos, esto es lo que sucede:

  • El az aks get-credentials comando intenta agregar los nuevos parámetros kubeconfig en el archivo C:\Users\A\.kube\config .

  • El comando kubectl intenta buscar en el archivo C:\Users\A\.kube\config .

Pero para kubectl, si el puntero al archivo kubeconfig ha cambiado, se supone que el archivo que se usa para acceder al clúster se encuentra en una ubicación diferente.

Nota:

Un archivo kubeconfig es una referencia a un archivo que contiene parámetros de configuración para acceder a clústeres de Kubernetes. No hace referencia necesariamente a un archivo denominado kubeconfig.

El error se produce si se produce uno de los siguientes escenarios:

Causa 1: El archivo de configuración no existe

El archivo de configuración no existe en el equipo.

Solución: Guardar las credenciales

Cargue el archivo de configuración ejecutando el comando en la az aks get-credentials CLI de Azure, que guarda las credenciales. Si no desea usar la ubicación predeterminada, especifique el --file <config-file-location> parámetro con la ubicación de config (por ejemplo, ~/Dir1/Dir2/config o C:\Dir1\Dir2\config).

az aks get-credentials --resource-group <cluster-resource-group> \
    --name <cluster-name> \
    [--file <config-file-location>]

Causa 2: El archivo de configuración está en el directorio incorrecto

El archivo de configuración está en el equipo, pero está en un directorio diferente del lugar donde el az aks get-credentials comando o la herramienta kubectl esperan que sea.

Solución: mueva el archivo de configuración , guarde las credenciales de nuevo o cambie la variable de entorno KUBECONFIG.

Realice una o varias de las siguientes acciones:

  • Mueva el archivo de configuración al directorio en el que desea que esté.

  • Ejecute el comando az aks get-credentials. Especifique la ubicación que desee si no es la ubicación predeterminada.

    az aks get-credentials --resource-group <cluster-resource-group> \
        --name <cluster-name> \
        [--file <config-file-location>]
    
  • Use una de las siguientes opciones para cambiar dónde kubectl busca parámetros de configuración:

    • Modifique la variable de KUBECONFIG entorno para que apunte a la ubicación actual del archivo de configuración . Para obtener más información, consulte Establecer la variable de entorno KUBECONFIG.

    • Ejecute el comando kubectl config con el --kubeconfig=<config-file-location> parámetro .

Causa 3: El archivo de configuración ha expirado o está dañado

El archivo de configuración está en el equipo. También está en el directorio esperado para el az aks get-credentials comando y la herramienta kubectl. Pero el archivo ha expirado o está dañado.

Solución: restablecer las credenciales

Vuelva a establecer las credenciales, ya que las credenciales existentes pueden expirar o estar dañadas. En ese caso, puede ejecutar el az aks get-credentials comando con el --overwrite-existing parámetro .

az aks get-credentials --resource-group <cluster-resource-group> \
    --name <cluster-name> \
    --overwrite-existing \
    [--file <config-file-location>]

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.