Поделиться через


Файл конфигурации недоступен при подключении

В этой статье описывается, как устранить проблемы, возникающие, когда не удается подключиться к кластеру Служба 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 ищет параметры конфигурации:

Причина 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.