Kubelet находится в рабочем состоянии, но kubectl выдает ошибку «Подключение к серверу отклонено»

Kubelet находится в рабочем состоянии, но kubectl выдает ошибку «Подключение к серверу отклонено»

Кластер Kubernetes раньше работал нормально, начались проблемы с запуском команд kubectl после перезапуска главного узла (1.0.0.0). Когда я запускаю kubectl get nodesкоманду, я получаю следующую ошибку.

# kubectl get nodes
The connection to the server 1.0.0.0:6443 was refused - did you specify the right host or port?

Когда я подключаюсь к главному узлу, который ( 1.0.0.0), порт 6443 не открыт для приема подключений. netstat -lntp|grep 6443Не выводит никаких данных. Служба Kubelet находится в рабочем состоянии, вывод systemctl status kubeletне показывает ничего подозрительного.

Пробовал перезапустить службу kubelet, но безуспешно. Также пробовал swapoff -aперед перезапуском службы kubelet.

Я упускаю какую-либо другую службу, которая принимает соединения на порту 6443? или это работа kubelet, но он этого не делает? Пожалуйста, помогите.

Примечание: Замаскировал свой IP-адрес до 1.0.0.0, фактический IP-адрес другой. Использую только Centos везде.

решение1

Ознакомьтесь с возможными решениями ниже:

Сначала просмотрите журналы journalctl -xeuвыходных данных kubelet, проверьте, есть ли, error while dialing dial unix /var/run/cri-dockerd.sock: connect: no such file or directoryзатем перезапустите и включитеуслуги cri-dockerdкак показано ниже:

sudo systemctl enable cri-dockerd.service
sudo systemctl restart cri-dockerd.service then
sudo systemctl start kubelet

Это может сработать для вас, пожалуйста, пройдите по ссылкессылка на githubдля получения дополнительной информации.

1) Вероятно, не установлена ​​переменная среды Kubeconfig. export KUBECONFIG=/etc/kubernetes/admin.confили$HOME/.kube/config

2)В каталоге $HOME пользователя есть no .kube/configфайл. Если у вас нет файла .kube или config

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

В качестве альтернативы вы также можете экспортировать переменную KUBECONFIG следующим образом:

export KUBECONFIG=$HOME/.kube/config

3) Сервер/порт, настроенный в файле конфигурации выше, неверен. Он такой же, как IP/имя хоста главного сервера? Если нет, вы его скопировали? Возможно, вам стоит это исправить.

Кстати, вы можете получить имя хоста, выполнив команду hostname в вашем cli или ifconfig для IP.

4) Служба Docker может быть отключена, поэтому модуль Kubeapi не работает.

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

5)Служба Kubelet может быть отключена. Это может быть связано с тем, что включен swap:

  • судо -i
  • swapoff -a
  • Выход
  • strace -eopenat версия kubectl

и вы можете снова ввести kubectl get nodes, как показано ниже.

введите описание изображения здесь

6)Может быть еще одна причина'дисковое пространство':

Проверять“df -h”, без накладки или шм (монтируется на/var/lib/docker…) был указан, пока вы не увеличили свободное место на диске.

7) Для решения вашей проблемы выполните следующую аналогичную процедуру.

владелец

kubeadm сброс kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=192.168.211.40 -- kubernetes-version=v1.18.0

    kubeadm join 192.168.211.40:6443 --token s7apx1.mlxn2jkid6n99fr0 \
        --discovery-token-ca-cert-hash sha256:2fa9da39110d02efaf4f8781aa50dd25cce9be524618dc7ab91a53e81c5c22f8 

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

узел1

$ kubeadm reset
$ kubeadm join 192.168.211.40:6443 --token s7apx1.mlxn2jkid6n99fr0 \
    --discovery-token-ca-cert-hash sha256:2fa9da39110d02efaf4f8781aa50dd25cce9be524618dc7ab91a53e81c5c22f8 

узел2

$ kubeadm reset
$ kubeadm join 192.168.211.40:6443 --token s7apx1.mlxn2jkid6n99fr0 \
    --discovery-token-ca-cert-hash sha256:2fa9da39110d02efaf4f8781aa50dd25cce9be524618dc7ab91a53e81c5c22f8 

владелец

$ kubectl get nodes
NAME     STATUS   ROLES    AGE     VERSION
master   Ready    master   5m18s   v1.18.6
node1    Ready    <none>   81s     v1.18.6
node2    Ready    <none>   43s     v1.18.6
$ scp /root/.kube/config [email protected]:/root/.kube/config
$ scp /root/.kube/config [email protected]:/root/.kube/config

8)Пожалуйста, попробуйте это, если проблема все еще актуальна:

iptables может вызвать проблемы после перезагрузки экземпляра.

sudo su
iptables -P INPUT ACCEPT ALL
iptables -F

Также см. Этодокумент описывает шаги по устранению ошибки kubectlЧтобы получить больше информации.

Также проверьте это похожееТАКЧтобы получить больше информации.

Связанный контент