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
- CLI de Azure.
- Herramienta de línea de comandos del clúster de Kubernetes (kubectl). También puede instalar kubectl ejecutando el comando az aks install-cli en la CLI de Azure.
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:
El comando az aks get-credentials de la CLI de Azure, que se usa para obtener credenciales de acceso para un clúster de Kubernetes administrado, modifica el archivo ~/.kube/config .
El comando kubectl usa el archivo kubeconfig (configuración de kubectl) en el directorio $HOME/.kube .
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.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de