
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 nodes
el 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 6443
No da resultados. El servicio Kubelet está en estado de ejecución, el resultado systemctl status kubelet
no muestra nada sospechoso.
Intenté reiniciar el servicio kubelet pero no tuve suerte. También lo intenté swapoff -a
antes 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 -xeu
salida de kubelet, verifique si error while dialing dial unix /var/run/cri-dockerd.sock: connect: no such file or directory
luego 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.conf
o$HOME/.kube/config
2)El directorio $HOME del usuario tiene no .kube/config
un 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.
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.