
O cluster Kubernetes estava funcionando bem anteriormente. Começou a ter problemas ao executar comandos kubectl após reiniciar o nó mestre (1.0.0.0). Quando executo kubectl get nodes
o comando, recebo o erro abaixo.
# kubectl get nodes
The connection to the server 1.0.0.0:6443 was refused - did you specify the right host or port?
Quando me conecto ao nó mestre que é ( 1.0.0.0
), a porta 6443 não está aberta para aceitar conexões. netstat -lntp|grep 6443
Não dá saída. O serviço Kubelet está em estado de execução, a saída de systemctl status kubelet
não mostra nada suspeito.
Tentei reiniciar o serviço kubelet, mas sem sorte. Também tentei swapoff -a
antes de reiniciar o serviço kubelet.
Estou faltando algum outro serviço que aceite conexões na porta 6443? ou é trabalho do kubelet, mas não consegue fazê-lo? Por favor ajude.
Nota: Mascarei meu endereço IP para 1.0.0.0, o IP real é diferente. Usando apenas Centos em todos os lugares.
Responder1
Confira abaixo possíveis soluções:
Primeiro revise os logs de journalctl -xeu
saída do kubelet, verifique se error while dialing dial unix /var/run/cri-dockerd.sock: connect: no such file or directory
você reinicia e habilitaserviços cri-dockerdcomo abaixo:
sudo systemctl enable cri-dockerd.service
sudo systemctl restart cri-dockerd.service then
sudo systemctl start kubelet
Pode funcionar para você, por favor, passe porlink do githubpara mais informações.
1)A variável ambiental Kubeconfig provavelmente não está definida.
export KUBECONFIG=/etc/kubernetes/admin.conf
ou$HOME/.kube/config
2)O diretório $HOME do usuário possui no .kube/config
arquivo. Se você não tiver um arquivo .kube ou de configuração
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf HOME/.kube/config sudo chown (id -u):$(id -g)
$HOME/.kube/config
Alternativamente, você também pode exportar a variável KUBECONFIG assim:
export KUBECONFIG=$HOME/.kube/config
3)O servidor/porta configurado no arquivo de configuração acima está errado. É igual ao IP/nome do host do servidor mestre? se não você copiou? Você pode querer consertar isso.
A propósito, você pode obter o nome do host emitindo o comando hostname em seu cli. ou ifconfig para o ip.
4)O serviço Docker pode estar inativo, portanto, o pod kubeapi não está em execução
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)O serviço Kubelet pode estar inativo. Isso pode ser devido ao fato de a troca estar habilitada:
- sudo -eu
- troca -a
- saída
- strace -eopenat versão kubectl
e você pode digitar kubectl get nodes novamente, conforme mostrado abaixo.
6)Pode ser outra causa'espaço em disco':
Verificar“df -h”
, sem sobreposição ou shm (montado em/var/lib/docker…
) foi listado, até você aumentar o espaço livre em disco.
7)Siga o processo semelhante abaixo para resolver seu problema
mestre
kubeadm redefinir kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=192.168.211.40 -- versão-kubernetes=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
nó1
$ kubeadm reset
$ kubeadm join 192.168.211.40:6443 --token s7apx1.mlxn2jkid6n99fr0 \
--discovery-token-ca-cert-hash sha256:2fa9da39110d02efaf4f8781aa50dd25cce9be524618dc7ab91a53e81c5c22f8
nó2
$ kubeadm reset
$ kubeadm join 192.168.211.40:6443 --token s7apx1.mlxn2jkid6n99fr0 \
--discovery-token-ca-cert-hash sha256:2fa9da39110d02efaf4f8781aa50dd25cce9be524618dc7ab91a53e81c5c22f8
mestre
$ 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)Por favor, tente isto se você ainda tiver o problema:
iptables pode causar problemas após você reiniciar sua instância.
sudo su
iptables -P INPUT ACCEPT ALL
iptables -F
Consulte também Istoo documento descreve as etapas para solucionar o erro do kubectlPara maiores informações.
Verifique também este semelhanteENTÃOPara maiores informações.