Конфигурация не найдена: /etc/kubernetes/admin.conf — после настройки рабочего узла kubeadm

#kubernetes #kubectl #kubeadm #kubelet

#kubernetes #kubectl #kubeadm #kubelet

Вопрос:

Следуя этому руководству, я настроил рабочий узел для своего кластера. Однако после запуска join команды и попытки kubectl get node проверить, подключен ли узел, я столкнулся со следующей ошибкой

 W0215 17:58:44.648813 3084402 loader.go:223] Config not found: /etc/kubernetes/admin.conf
The connection to the server localhost:8080 was refused - did you specify the right host or port?
 

Проверка на наличие admin.conf in /etc/kubernetes/ показывает, что он не существует. Я убедился, что $HOME/.kube/config это тоже понятно. Почему команда join не создает файл admin.conf?

Ответ №1:

TLDR

  1. Запуск join с помощью sudo
  2. mv /etc/kubernetes/kubelet.conf /etc/kubernetes/admin.conf

После некоторых изменений я понял, что это была комбинация ошибки разрешений и правильного файла, сгенерированного с неправильным именем.

Вместо того, чтобы работать kubeadm join ... голым, запуск с помощью sudo позволил команде создавать файлы, необходимые в /etc/kubernetes

 sudo kubeadm join <MASTER_IP:PORT> --token <TOKEN>     --discovery-token-ca-cert-hash <HASH>
 

Однако это не генерирует admin.conf , а создает kubelet.conf . Я не уверен, почему это происходит, и не смог найти никакой документации по этому поведению, однако запуск kubectl со следующим параметром решил мою проблему

 kubectl get nodes --kubeconfig /etc/kubernetes/kubelet.conf
 

Переименуйте kubelet.conf в admin.conf для вашего удобства на этом этапе.