Мой кластер kubernetes не работает после перезагрузки

После каждой перезагрузки мой кластер kubernetes не работает нормально, и я получаю

The connection to the server 192.168.1.4:6443 was refused - did you specify the right host or port?

У меня есть 4 Ubuntu на baremetal один из них является мастером и 3 работника, и я отключаю своп и отключаю его. и я где-то читал, я должен запустить эту команду два решить ее

sudo -i
swapoff -a
exit
strace -eopenat kubectl version

и это работа. Но почему это происходило?

3 ответа

Сначала, пожалуйста, бегите systemctl status kubelet и проверьте, работает ли служба:
"Активен: активен (работает)"
Отключить своп:

sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

проверьте все ссылки, найденные в / etc / fstab, о swap.

Пожалуйста, также выполните шаги "kubeadm init" для текущего пользователя, как описано здесь: https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

После перезагрузки, пожалуйста, проверьте:
systemctl status dockerвключить докер при запуске, если он не работает
systemctl enable docker

Вы также можете проверить статус kubelet:

systemctl status kubelet
systemctl enable kubelet

посмотрите на любые ошибки:

journalctl -u kubelet.service
journalctl

И, пожалуйста, поделитесь своими выводами.

Это зависит от того, как вы устанавливаете кластер.

В этом посте я упомяну о возможных способах решения этой проблемы.

  1. Убедитесь, что своп выключен.

            swapoff -a
    
  2. Проверьте состояние Kubelet. В случае, если он вышел и не может работать должным образом, вы можете проверить его журнал.

            journalctl -xfu kubelet.service
    

    В моем случае журнал не был так полезен. Я пытался увидеть журнал других компонентов. После поиска и попытки найти подсказку я обнаружил, что есть ошибка с ‍cri-dockerdservice, потому что он может быть не включен в systemd.

            systemctl start cri-dockerd.service
    systemctl enable cri-dockerd.service
    

    Наконец, перезапустите сервис kubelet и проверьте его статус:

            systemctl restart kubelet.service
    systemctl status kubelet.service
    

Скорее всего, Кубеле не перезапускается. Вы должны проверить журналы Kubelet, чтобы исправить проблемы, если таковые имеются.

Убедитесь, что драйвер докера и драйвер, используемый kubelet, должны совпадать.

Своп должен быть отключен и тд

Другие вопросы по тегам