
Кластер 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Чтобы получить больше информации.
Также проверьте это похожееТАКЧтобы получить больше информации.