Kubelet está en estado de ejecución pero kubectl está dando conexión al servidor rechazado error

Kubelet está en estado de ejecución pero kubectl está dando conexión al servidor rechazado error

El clúster de Kubernetes funcionaba bien antes. Comenzó a tener problemas al ejecutar los comandos de kubectl después de reiniciar el nodo maestro (1.0.0.0). Cuando ejecuto kubectl get nodesel comando, aparece el siguiente error.

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

Cuando me conecto al nodo maestro que es ( 1.0.0.0), el puerto 6443 no está abierto para aceptar conexiones. netstat -lntp|grep 6443No da resultados. El servicio Kubelet está en estado de ejecución, el resultado systemctl status kubeletno muestra nada sospechoso.

Intenté reiniciar el servicio kubelet pero no tuve suerte. También lo intenté swapoff -aantes de reiniciar el servicio kubelet.

¿Me falta algún otro servicio que acepte conexiones en el puerto 6443? ¿O es trabajo de kubelet pero no lo hace? Por favor ayuda.

Nota: Enmascaré mi dirección IP a 1.0.0.0, la IP real es diferente. Usando solo Centos en todas partes.

Respuesta1

Consulte a continuación las posibles soluciones:

Primero revise los registros de journalctl -xeusalida de kubelet, verifique si error while dialing dial unix /var/run/cri-dockerd.sock: connect: no such file or directoryluego reinicia y habilitaservicios cri-dockerdcomo abajo :

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

Puede que te sirva, por favor revisaenlace githubpara más información.

1)La variable ambiental de Kubeconfig probablemente no esté configurada. export KUBECONFIG=/etc/kubernetes/admin.confo$HOME/.kube/config

2)El directorio $HOME del usuario tiene no .kube/configun archivo. Si no tiene un archivo .kube o de configuración

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

Alternativamente, también puedes exportar la variable KUBECONFIG como esta:

export KUBECONFIG=$HOME/.kube/config

3)El servidor/puerto configurado en el archivo de configuración anterior es incorrecto. ¿Es lo mismo que la IP/nombre de host del servidor maestro? si no, ¿lo copiaste? Tu podrías querer reparar eso.

Por cierto, puede obtener el nombre de host emitiendo el comando hostname en su cli. o ifconfig para la ip.

4) El servicio Docker puede estar inactivo, por lo que el pod kubeapi no se está ejecutando

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)El servicio de Kubelet puede estar inactivo. Esto puede deberse al hecho de que el intercambio está habilitado:

  • sudo-i
  • intercambio -a
  • salida
  • versión strace -eopenat kubectl

y puede escribir kubectl get nodes nuevamente como se muestra a continuación.

ingrese la descripción de la imagen aquí

6)Puede ser otra causa'Espacio del disco':

Controlar“df -h”, sin superposición ni shm (montado en/var/lib/docker…) estaba en la lista, hasta que aumentó el espacio libre en el disco.

7)Siga el proceso similar a continuación para resolver su problema

maestro

kubeadm reset 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

nodo1

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

nodo2

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

maestro

$ 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) Intente esto si aún tiene el problema:

iptables puede causar problemas después de reiniciar su instancia.

sudo su
iptables -P INPUT ACCEPT ALL
iptables -F

Consulte también esteEl documento describe los pasos para solucionar el error de kubectl.para más información.

También mira este similarENTONCESpara más información.

información relacionada