Config file isn't available when connecting
This article describes how to fix issues that occur when you can't connect to an Azure Kubernetes Service (AKS) cluster because of a missing or invalid config file.
Prerequisites
- Azure CLI.
- The Kubernetes cluster command-line tool (kubectl). You can alternatively install kubectl by running the az aks install-cli command in Azure CLI.
Symptoms
During a cluster connection attempt, an error message similar to the following text appears:
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)
Causes
The kubectl tool and other Kubernetes connection tools use a local configuration file named config. The config file contains authentication credentials and details to connect to the cluster. By default:
The az aks get-credentials command in Azure CLI, which is used to get access credentials for a managed Kubernetes cluster, modifies the ~/.kube/config file.
The kubectl command uses the kubeconfig (kubectl configuration) file in the $HOME/.kube directory.
So what happens during an attempted Kubernetes session depends on the user who's running the kubectl command. If you've signed in as user A, and executed both commands, here's what happens:
The
az aks get-credentials
command tries to add the new kubeconfig parameters in the C:\Users\A\.kube\config file.The kubectl command tries to search the C:\Users\A\.kube\config file.
But for kubectl, if the pointer to the kubeconfig file has changed, the file that's used for accessing the cluster is supposed to be in a different location.
Note
A kubeconfig file is a reference to a file that contains configuration parameters for accessing Kubernetes clusters. It doesn't necessarily refer to a file that's named kubeconfig.
The error occurs if one of the following scenarios occurs:
Cause 1: The config file doesn't exist
The config file doesn't exist on your machine.
Solution: Save the credentials
Load the config file by running the az aks get-credentials
command in Azure CLI, which saves the credentials. If you don't want to use the default location, specify the --file <config-file-location>
parameter with the location of config (for example, ~/Dir1/Dir2/config or C:\Dir1\Dir2\config).
az aks get-credentials --resource-group <cluster-resource-group> \
--name <cluster-name> \
[--file <config-file-location>]
Cause 2: The config file is in the wrong directory
The config file is on your machine, but it's in a different directory from where the az aks get-credentials
command and/or the kubectl tool expects it to be.
Solution: Move the config file, save the credentials again, or change the KUBECONFIG environment variable
Take one or more of the following actions:
Move the config file to the directory you want it to be in.
Run the
az aks get-credentials
command. Specify the location you want if it isn't the default location.az aks get-credentials --resource-group <cluster-resource-group> \ --name <cluster-name> \ [--file <config-file-location>]
Use one of the following options to change where kubectl looks for configuration parameters:
Modify the
KUBECONFIG
environment variable to point to the config file's current location. For more information, see Set the KUBECONFIG environment variable.Run the kubectl config command with the
--kubeconfig=<config-file-location>
parameter.
Cause 3: The config file has expired or is corrupted
The config file is on your machine. It's also in the expected directory for the az aks get-credentials
command and the kubectl tool. But the file is expired or corrupted.
Solution: Reestablish the credentials
Reestablish the credentials, because the existing credentials might be expired or corrupted. In that case, you may run the az aks get-credentials
command with the --overwrite-existing
parameter.
az aks get-credentials --resource-group <cluster-resource-group> \
--name <cluster-name> \
--overwrite-existing \
[--file <config-file-location>]
Contact us for help
If you have questions or need help, create a support request, or ask Azure community support. You can also submit product feedback to Azure feedback community.