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

En este artículo se describe cómo solucionar 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 siguiente texto:

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 una sesión de Kubernetes intentada 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:\UsersA.kubeconfig\\\.

  • El comando kubectl intenta buscar en el archivo C:\UsersA.kubeconfig\\\.

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

Nota

Un archivo kubeconfig es una referencia a un archivo que contiene parámetros de configuración para obtener acceso 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 az aks get-credentials comando en la CLI de Azure, que guarda las credenciales. Si no desea usar la ubicación predeterminada, --file <config-file-location> especifique el parámetro con la ubicación de config (por ejemplo, ~/Dir1/Dir2/config o C:\Dir1Dir2config\\).

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 se encuentra en un directorio diferente de az aks get-credentials donde el comando o la herramienta kubectl espera que sea.

Solución: mover el archivo de configuración , volver a guardar las credenciales o cambiar la variable de entorno KUBECONFIG

Lleve a cabo 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 desea 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:

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

Restablezca las credenciales, ya que las credenciales existentes podrían estar expiradas o 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>]