Почему невозможно подключить главный узел через kubeadm

Вопрос или проблема

Добрый день, я столкнулся с проблемой, что не могу подключить мастер-ноду к своему k8s кластеру.

Мне удалось создать кластер из одного мастер-ноды и одного воркера.

NAME           STATUS   ROLES           AGE    VERSION
k8s-master-1   Ready    control-plane   110m   v1.30.8
k8s-worker-1   Ready    <none>          27m    v1.30.8

Но при попытке подключить еще одного мастера с использованием следующей команды

kubeadm join 192.168.0.204:6443 --token 4ad6xh.h3o9mdv2ufvxevzv --discovery-token-ca-cert-hash sha256:15b53d59f8d213dbf88d162365c26b0ba0541943e2ca2c98deb2c4e2f4028145 --control-plane --v=5

возникает следующая ошибка

error execution phase preflight
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).Run.func1
        k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:260
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).visitAll
        k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:446
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).Run
        k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:232
k8s.io/kubernetes/cmd/kubeadm/app/cmd.newCmdJoin.func1
        k8s.io/kubernetes/cmd/kubeadm/app/cmd/join.go:183
github.com/spf13/cobra.(*Command).execute
        github.com/spf13/[email protected]/command.go:940
github.com/spf13/cobra.(*Command).ExecuteC
        github.com/spf13/[email protected]/command.go:1068
github.com/spf13/cobra.(*Command).Execute
        github.com/spf13/[email protected]/command.go:992
k8s.io/kubernetes/cmd/kubeadm/app.Run
        k8s.io/kubernetes/cmd/kubeadm/app/kubeadm.go:52
main.main
        k8s.io/kubernetes/cmd/kubeadm/kubeadm.go:25
runtime.main
        runtime/proc.go:271
runtime.goexit
        runtime/asm_amd64.s:1695

Я также пытался приложить сертификат, но ничего не вышло.

 kubeadm join 192.168.0.204:6443 --token aax7g9.qd1m2yeg5uktm7s7 --discovery-token-ca-cert-hash sha256:15b53d59f8d213dbf88d162365c26b0ba0541943e2ca2c98deb2c4e2f4028145 --control-plane --certificate-key fd9a624dc7e2b507807d588c7790ebbb0f0d8625212778e96927a25484155d0f

Затем я попробовал поднять KubeVIP, но это не помогло, так как я использую containerd.
Версия kuber v1.30

.

Ответ или решение

Здравствуйте,

Возникшая у вас проблема с подключением дополнительного мастер-нода к вашему кластеру Kubernetes через kubeadm может иметь множество причин. Давайте рассмотрим их подробно и предложим возможные решения.

Причины и решения:

  1. Обновление токена аутентификации:

    • Токен kubeadm join имеет ограниченный срок действия (по умолчанию 24 часа). Убедитесь, что используете актуальный токен. При необходимости создайте новый токен с помощью команды:
      kubeadm token create --print-join-command
  2. Соответствие версий:

    • Вы упомянули, что используете Kubernetes версии v1.30.8. Убедитесь, что все узлы в кластере используют совместимые версии Kubernetes.
    • Проверьте, чтобы версия kubeadm, kubelet и kubectl была совместимой и актуальной.
  3. Сетевые настройки:

    • Убедитесь, что между мастер-нодами и воркер-нодами установлено надежное сетевое соединение. Порты 6443, 2379-2380 (для etcd), 10250-10252 должны быть доступны.
    • Проверьте, нет ли в вашей сети блокировок или межсетевых экранов, ограничивающих доступ по указанным портам.
  4. Конфигурация сертификатов:

    • Убедитесь, что используете правильный --discovery-token-ca-cert-hash. Неправильный хэш может вызвать неверифицированное соединение.
    • Если вы также используете --certificate-key, убедитесь в его корректности и недавнем создании.
  5. Использование Containerd:

    • При работе с Containerd необходимо убедиться в правильной конфигурации сетевого плагина (например, Calico, Flannel) и его совместимости с текущей настройкой контейнерного окружения.
    • Периодически возникают проблемы с совместимостью конфигураций Containerd и Kubernetes. Убедитесь, что установлены последние версии и применены актуальные исправления.
  6. Проблемы с Kube-VIP:

    • Если вы решили использовать Kube-VIP для обеспечения высокой доступности, убедитесь в его корректной настройке и согласовании с другими системными конфигурациями.
    • Проверьте, находится ли VIP-адрес в доступности с другими узлами кластера и не вызывает ли конфликтов в сети.

Общие рекомендации:

  • Логи и дебаггинг:
    • Используйте -v=5 для увеличения детализации логирования и возможности выявления более явных ошибок.
    • Ознакомьтесь с логами на /var/log на всех узлах, особенно с точки зрения компонентов kubelet и kubeadm.

Это далеко не исчерпывающий список возможных причин и решений, однако, он охватывает основные моменты, которые часто вызывают затруднения при добавлении мастер-узлов к кластерам Kubernetes. Надеюсь, это поможет вам решить вашу проблему. Если возникают дополнительные вопросы, мы можем провести более углубленный анализ конкретных логов и конфигураций вашего кластера.

С уважением.

Оцените материал
Добавить комментарий

Капча загружается...