Kubelet ist im laufenden Zustand, aber kubectl gibt die Verbindung zum Server zurückgewiesen Fehler

Kubelet ist im laufenden Zustand, aber kubectl gibt die Verbindung zum Server zurückgewiesen Fehler

Der Kubernetes-Cluster funktionierte vorher einwandfrei. Nach dem Neustart des Masterknotens (1.0.0.0) traten Probleme beim Ausführen von Kubectl-Befehlen auf. Wenn ich kubectl get nodesden Befehl ausführe, erhalte ich den folgenden Fehler.

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

Wenn ich mich mit dem Masterknoten verbinde, der ( 1.0.0.0) ist, ist der Port 6443 nicht geöffnet, um Verbindungen anzunehmen. netstat -lntp|grep 6443Gibt keine Ausgabe aus. Der Kubelet-Dienst ist im laufenden Zustand, die Ausgabe systemctl status kubeletzeigt nichts Verdächtiges.

Habe versucht, den Kubelet-Dienst neu zu starten, aber ohne Erfolg. Habe es auch swapoff -avor dem Neustart des Kubelet-Dienstes versucht.

Verpasse ich einen anderen Dienst, der Verbindungen über Port 6443 akzeptiert? Oder ist das die Aufgabe von Kubelet, das dies aber nicht tut? Bitte helfen Sie.

Hinweis: Ich habe meine IP-Adresse auf 1.0.0.0 maskiert, die tatsächliche IP ist anders. Überall wird nur Centos verwendet.

Antwort1

Sehen Sie sich die folgenden möglichen Lösungen an:

Überprüfen Sie zunächst die Protokolle der journalctl -xeuKubelet-Ausgabe, prüfen Sie, ob error while dialing dial unix /var/run/cri-dockerd.sock: connect: no such file or directorydann neu gestartet und aktiviert wirdcri-dockerd-DiensteWie unten :

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

Es könnte für Sie funktionieren, bitte gehen Sie durchGitHub-LinkFür mehr Information.

1)Die Umgebungsvariable Kubeconfig ist wahrscheinlich nicht gesetzt. export KUBECONFIG=/etc/kubernetes/admin.confoder$HOME/.kube/config

2)Das $HOME-Verzeichnis des Benutzers hat no .kube/configeine Datei. Wenn Sie keine .kube- oder Konfigurationsdatei haben

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

Alternativ können Sie die Variable KUBECONFIG auch wie folgt exportieren:

export KUBECONFIG=$HOME/.kube/config

3)Der in der Konfigurationsdatei oben konfigurierte Server/Port ist falsch. Ist er derselbe wie die IP/der Hostname des Masterservers? Wenn nicht, haben Sie ihn kopiert? Das sollten Sie vielleicht beheben.

Sie können den Hostnamen übrigens abrufen, indem Sie auf Ihrer CLI den Befehl „Hostname“ oder „ifconfig“ für die IP eingeben.

4)Der Docker-Dienst ist möglicherweise ausgefallen, daher läuft der Kubeapi-Pod nicht

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)Der Kubelet-Dienst ist möglicherweise ausgefallen. Dies kann daran liegen, dass Swap aktiviert ist:

  • sudo -ich
  • Auslagerung -a
  • Ausfahrt
  • strace -eopenat kubectl version

und Sie können „kubectl get nodes“ erneut eingeben, wie unten gezeigt.

Bildbeschreibung hier eingeben

6)Kann eine andere Ursache sein'Festplattenplatz':

Überprüfen“df -h”, kein Overlay oder SHM (montiert auf/var/lib/docker…) wurde aufgeführt, bis Sie den freien Speicherplatz erhöht haben.

7)Befolgen Sie zur Lösung Ihres Problems die nachstehenden Schritte.

Meister

kubeadm zurücksetzen 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

Knoten1

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

Knoten2

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

Meister

$ 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)Wenn das Problem weiterhin besteht, versuchen Sie Folgendes:

iptables kann nach dem Neustart Ihrer Instanz Probleme verursachen.

sudo su
iptables -P INPUT ACCEPT ALL
iptables -F

Siehe auchDokument beschreibt Schritte zur Behebung von Kubectl-Fehlernfür mehr Informationen.

Überprüfen Sie auch diese ähnlichenALSOfür mehr Informationen.

verwandte Informationen