Файл конфигурации недоступен при подключении
В этой статье описывается, как устранить проблемы, возникающие, когда не удается подключиться к кластеру Служба Azure Kubernetes (AKS) из-за отсутствия или недопустимого файла конфигурации.
Предварительные требования
- Azure CLI.
- Средство командной строки кластера Kubernetes (kubectl). Кроме того, можно установить kubectl, выполнив команду az aks install-cli в Azure CLI.
Симптомы
При попытке подключения к кластеру появляется сообщение об ошибке, похожее на следующий текст:
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)
Причины
Средство kubectl и другие средства подключения Kubernetes используют локальный файл конфигурации с именем config. Файл конфигурации содержит учетные данные проверки подлинности и сведения для подключения к кластеру. По умолчанию:
Команда az aks get-credentials в Azure CLI, которая используется для получения учетных данных доступа для управляемого кластера Kubernetes, изменяет файл ~/.kube/config .
Команда kubectl использует файл kubeconfig (конфигурация kubectl) в каталоге $HOME/.kube .
То, что происходит во время попытки сеанса Kubernetes, зависит от пользователя, который выполняет команду kubectl. Если вы вошли в систему от имени пользователя A и выполнили обе команды, вот что происходит:
Команда
az aks get-credentials
пытается добавить новые параметры kubeconfig в файл C:\Users\A\.kube\config .Команда kubectl пытается выполнить поиск в файле C:\Users\A\.kube\config .
Но для kubectl, если указатель на файл kubeconfig изменился, файл, используемый для доступа к кластеру, должен находиться в другом расположении.
Примечание.
Файл kubeconfig — это ссылка на файл, содержащий параметры конфигурации для доступа к кластерам Kubernetes. Он не обязательно ссылается на файл с именем kubeconfig.
Ошибка возникает в одном из следующих сценариев:
Причина 1. Файл конфигурации не существует
Файл конфигурации не существует на компьютере.
Решение. Сохранение учетных данных
Загрузите файл конфигурации , выполнив az aks get-credentials
команду в Azure CLI, которая сохраняет учетные данные. Если вы не хотите использовать расположение по умолчанию, укажите --file <config-file-location>
параметр с расположением конфигурации (например, ~/Dir1/Dir2/config или C:\Dir1\Dir2\config).
az aks get-credentials --resource-group <cluster-resource-group> \
--name <cluster-name> \
[--file <config-file-location>]
Причина 2. Файл конфигурации находится в неправильном каталоге
Файл конфигурации находится на компьютере, но он находится в каталоге, отличном от каталога, в котором az aks get-credentials
ожидается команда и (или) средство kubectl.
Решение. Переместите файл конфигурации , сохраните учетные данные еще раз или измените переменную среды KUBECONFIG.
Выполните одно или несколько из следующих действий:
Переместите файл конфигурации в каталог, в который он должен находиться.
Выполните команду
az aks get-credentials
. Укажите нужное расположение, если оно не является расположением по умолчанию.az aks get-credentials --resource-group <cluster-resource-group> \ --name <cluster-name> \ [--file <config-file-location>]
Используйте один из следующих параметров, чтобы изменить, где kubectl ищет параметры конфигурации:
Измените
KUBECONFIG
переменную среды, чтобы она указывала на текущее расположение файла конфигурации . Дополнительные сведения см. в разделе Настройка переменной среды KUBECONFIG.Выполните команду kubectl config с параметром
--kubeconfig=<config-file-location>
.
Причина 3. Срок действия файла конфигурации истек или поврежден.
Файл конфигурации находится на компьютере. Он также находится в ожидаемом каталоге az aks get-credentials
для команды и средства kubectl. Но срок действия файла истек или поврежден.
Решение. Восстановление учетных данных
Повторно установите учетные данные, так как срок действия существующих учетных данных может быть истек или поврежден. В этом случае можно выполнить az aks get-credentials
команду с параметром --overwrite-existing
.
az aks get-credentials --resource-group <cluster-resource-group> \
--name <cluster-name> \
--overwrite-existing \
[--file <config-file-location>]
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.