Как присоединиться к рабочему узлу в существующем кластере?

Я столкнулся с некоторыми проблемами при присоединении к рабочему узлу в существующем кластере. Ниже приведены подробные сведения о моем сценарии.
Я создал кластеры высокой доступности с 4 главными и 3 рабочими.
Я удалил 1 главный узел.
Удаленный узел не был часть кластера сейчас, и сброс прошел успешно. Теперь присоединяемся к удаленному узлу в качестве рабочего узла в существующем кластере.

Я стреляю ниже команды

kubeadm join --token giify2.4i6n2jmc7v50c8st 192.168.230.207:6443 --discovery-token-ca-cert-hash sha256:dd431e6e19db45672add3ab0f0b711da29f1894231dbeb10d823ad833b2f6e1b

В приведенной выше команде - 192.168.230.207 - IP-адрес кластера

Результат вышеуказанной команды

[preflight] Running pre-flight checks
    [WARNING Service-Docker]: docker service is not enabled, please run 'systemctl enable docker.service'
    [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
    [WARNING FileExisting-tc]: tc not found in system path
    [WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
error execution phase preflight: unable to fetch the kubeadm-config ConfigMap: failed to get config map: Get https://192.168.230.206:6443/api/v1/namespaces/kube-system/configmaps/kubeadm-config: dial tcp 192.168.230.206:6443: connect: connection refused

Уже пробовали шаги

  1. отредактировал этот файл (kubectl -n kube-system get cm kubeadm-config -o yaml) с помощью патча kubeadm и удалил ссылки на удаленный узел ("192.168.230.206")

  2. Мы используем внешний etcd, поэтому проверенный список участников, чтобы убедиться, что удаленный узел не является частью etcd. Запущена ниже команда etcdctl --endpoints=https://cluster-ip --ca-file=/etc/etcd/pki/ca.pem --cert-file=/etc/etcd/pki/client.pem --key-file=/etc/etcd/pki/client-key.pem member list

Может ли кто-нибудь помочь мне решить эту проблему, поскольку я не могу присоединиться к этому узлу?


person Ankit Sanadhya    schedule 07.06.2019    source источник


Ответы (4)


В дополнение к ответу @P Ekambaram, я предполагаю, что вы, вероятно, полностью избавились от всех избыточных данных из предыдущей установки kubeadm join.

  1. Удалите записи кластера с помощью команды kubeadm на рабочем узле: kubeadm reset;

  2. Удалите все избыточные данные, хранящиеся на рабочем узле: rm -rf /etc/kubernetes; rm -rf ~/.kube;

  3. Попробуйте повторно присоединиться к рабочему узлу.

person Nick_Kh    schedule 11.06.2019

Используйте эти инструкции одну за другой, чтобы полностью удалить всю старую установку на рабочем узле .....

kubeadm reset

systemctl stop kubelet

systemctl stop docker

rm -rf /var/lib/cni/

rm -rf /var/lib/kubelet/*

rm -rf /etc/cni/

ifconfig cni0 down

ifconfig flannel.1 down

ifconfig docker0 down

ip link delete cni0

ip link delete flannel.1

systemctl start docker.service

yum remove kubeadm kubectl kubelet kubernetes-cni kube*

yum autoremove

rm -rf ~/.kube

затем переустановите, используя

yum install -y kubelet kubeadm kubectl

reboot

systemctl start docker && systemctl enable docker
systemctl start kubelet && systemctl enable kubelet

затем используйте команду kubeadm join

person Madhu    schedule 16.10.2019
comment
Пожалуйста, объясните, почему вы ожидаете, что это поможет. - person Pibben; 16.10.2019
comment
Они помогают удалить следы от предыдущей установки. - person Madhu; 16.10.2019

исправьте эти проблемы и запустите команду соединения

  1. служба докеров не включена, запустите systemctl enable docker.service

  2. обнаружил "cgroupfs" как драйвер контрольной группы Docker. Рекомендуемый драйвер - «systemd».

  3. Служба kubelet не включена, запустите 'systemctl enable kubelet.service

person P Ekambaram    schedule 07.06.2019
comment
Я уже пробовал все эти шаги, но у меня это не сработало. Похоже, что некоторая конфигурация была сохранена в активном главном узле при удалении другого мастера, но я не могу найти эту вещь, кроме карты конфигурации, о которой я упоминал выше. - person Ankit Sanadhya; 07.06.2019
comment
вы можете запустить докер и кубелет на узле woker? - person P Ekambaram; 07.06.2019
comment
да оба работают. Служба kubelet автоматически перезапускается через 10 секунд, поскольку для свойства RestartSec установлено значение 10 секунд. Я добавляю это как рабочий узел, чем почему команда join перенаправлена ​​на этот IP 192.168.230.206 и ищу конфигурацию kube. - person Ankit Sanadhya; 07.06.2019
comment
зачем кубелет перезапускать? его не следует перезапускать каждые 10 секунд - person P Ekambaram; 07.06.2019
comment
Конфигурация изменилась, но не работало, теперь кубелет запускается только при выходе из строя. - person Ankit Sanadhya; 07.06.2019
comment
вы меняли драйвер на systemd? - person P Ekambaram; 07.06.2019
comment
[предварительная проверка] Выполнение предполетных проверок [ПРЕДУПРЕЖДЕНИЕ FileExisting-tc]: tc не найден в системном пути [предварительная проверка] Чтение конфигурации из кластера ... [предварительная проверка] К сведению: вы можете посмотреть этот файл конфигурации с помощью 'kubectl -n kube -system get cm kubeadm-config -oyaml 'ошибка выполнения этапа предпечатной проверки: невозможно получить файл конфигурации kubeadm-config ConfigMap: не удалось получить карту конфигурации: Get 192.168.230.206:6443/api/v1/namespaces/kube-system/configmaps/: наберите tcp 192.168.230.206:6443: подключиться: в подключении отказано - person Ankit Sanadhya; 07.06.2019
comment
Похоже, что на этом рабочем узле остались следы от предыдущей установки. Следовательно, вы не можете присоединиться к нему - person P Ekambaram; 07.06.2019
comment
Я предполагаю, что не знаю, как отследить эту часть. Не могли бы вы помочь мне определить эту часть? - person Ankit Sanadhya; 10.06.2019

kubeadm join попытайтесь достичь 192.168.230.206, тогда как новый IP-адрес - 192.168.230.207.

Помимо изменения cm kubeadm-config, вы можете изменить свой IP-адрес кластера (cluster.server) в этой configmap.

kubectl edit cm -n kube-public cluster-info
person Arnaud Grandville    schedule 09.07.2021