1. Knoten löschenFühren Sie kubectl delete node node01 aus. 2. Wenn Sie den Join zu diesem Zeitpunkt direkt ausführen, wird ein Fehler gemeldet. wie folgt:[root@k8s-node02 pki]# kubeadm join 192.168.140.128:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:a3d9827be411208258aea7f3ee9aa396956c0a77c8b570503dd677aa3b6eb6d8 [preflight] Ausführen von Pre-Flight-Checks [WARNUNG SystemVerification]: Diese Docker-Version ist nicht auf der Liste der validierten Versionen: 19.03.12. Neueste validierte Version: 18.09 Fehler bei der Ausführungsphase Preflight: [preflight] Es sind einige schwerwiegende Fehler aufgetreten: [FEHLER FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf existiert bereits [FEHLER FileAvailable--etc-kubernetes-bootstrap-kubelet.conf]: /etc/kubernetes/bootstrap-kubelet.conf existiert bereits [ERROR Port-10250]: Port 10250 wird verwendet [FEHLER FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt existiert bereits [Preflight] Wenn Sie wissen, was Sie tun, können Sie mit `--ignore-preflight-errors=...` eine Prüfung ohne schwerwiegende Fehler durchführen. Lösung:Dem Fehlerbericht zufolge können Sie sehen, dass der Port belegt ist und die Konfigurationsdatei und das CA-Zertifikat generiert wurden. Daher müssen Sie diese Konfigurationsdateien und Zertifikate löschen und den belegten Port beenden. Es wird empfohlen, vor dem Löschen eine Sicherungskopie zu erstellen. [root@k8s-node02 pki]# lsof -i:10250 BEFEHL PID BENUTZER FD TYP GERÄTEGRÖSSE/AUS KNOTENNAME kubelet 694 root 30u IPv6 26021 0t0 TCP *:10250 (HÖREN) [root@k8s-node02 pki]# kill -9 694 [root@k8s-node02 pki]# cd /etc/kubernetes/ [root@k8s-node02 kubernetes]# ls bootstrap-kubelet.conf kubelet.conf manifestiert pki [root@k8s-node02 kubernetes]# mv bootstrap-kubelet.conf bootstrap-kubelet.conf_bk [root@k8s-node02 kubernetes]# mv kubelet.conf kubelet.conf_bk [root@k8s-node02 kubernetes]# cd pki/ [root@k8s-node02 pki]# ls ca.crt [root@k8s-node02 pki]# rm -rf ca.crt 3. Führen Sie den Join erneut aus und es tritt erneut ein Fehler auf.[root@k8s-node02 ~]# kubeadm join 192.168.140.128:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:a3d9827be411208258aea7f3ee9aa396956c0a77c8b570503dd677aa3b6eb6d8 [preflight] Ausführen von Pre-Flight-Checks [WARNUNG SystemVerification]: Diese Docker-Version ist nicht auf der Liste der validierten Versionen: 19.03.12. Neueste validierte Version: 18.09 [Preflight] Konfiguration aus dem Cluster wird gelesen … [preflight] Zu Ihrer Information: Sie können sich diese Konfigurationsdatei mit „kubectl -n kube-system get cm kubeadm-config -oyaml“ ansehen. [kubelet-start] Herunterladen der Konfiguration für das Kubelet aus der ConfigMap „kubelet-config-1.15“ im Kube-System-Namespace [kubelet-start] Schreibe die Kubelet-Konfiguration in die Datei „/var/lib/kubelet/config.yaml“ [kubelet-start] Schreibe eine Kubelet-Umgebungsdatei mit Flags in die Datei „/var/lib/kubelet/kubeadm-flags.env“ [kubelet-start] Aktivieren des Kubelet-Dienstes [kubelet-start] Warten darauf, dass Kubelet den TLS-Bootstrap ausführt … [kubelet-check] Ursprüngliches Timeout von 40 s abgelaufen. Fehler in der Ausführungsphase kubelet-start: Fehler beim Hochladen von Crisocket: Zeitüberschreitung beim Warten auf die Bedingung Lösung:Führen Sie kubeadm reset aus, um den untergeordneten Knoten zurückzusetzen [root@k8s-node02 ~]# kubeadm zurücksetzen [zurücksetzen] WARNUNG: An diesem Host durch „kubeadm init“ oder „kubeadm join“ vorgenommene Änderungen werden rückgängig gemacht. [Zurücksetzen] Möchten Sie wirklich fortfahren? [j/N]: j [preflight] Ausführen von Pre-Flight-Checks W0710 10:22:57.487306 31093 removeetcdmember.go:79] [reset] Keine Kubeadm-Konfiguration, verwende etcd-Pod-Spezifikation, um Datenverzeichnis abzurufen [reset] Keine etcd-Konfiguration gefunden. Externes etcd wird angenommen [reset] Bitte setzen Sie etcd manuell zurück, um weitere Probleme zu vermeiden [reset] Stoppen des Kubelet-Dienstes [reset] Aushängen gemounteter Verzeichnisse in „/var/lib/kubelet“ [reset] Inhalt der Konfigurationsverzeichnisse löschen: [/etc/kubernetes/manifests /etc/kubernetes/pki] [reset] Dateien löschen: [/etc/kubernetes/admin.conf /etc/kubernetes/kubelet.conf /etc/kubernetes/bootstrap-kubelet.conf /etc/kubernetes/controller-manager.conf /etc/kubernetes/scheduler.conf] [reset] Inhalt von Statusverzeichnissen löschen: [/var/lib/kubelet /etc/cni/net.d /var/lib/dockershim /var/run/kubernetes] Der Zurücksetzungsvorgang führt weder zu einem Zurücksetzen noch zu einer Bereinigung der iptables-Regeln oder IPVS-Tabellen. Wenn Sie iptables zurücksetzen möchten, müssen Sie dies manuell tun. Zum Beispiel: iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X Wenn Ihr Cluster für die Nutzung von IPVS eingerichtet wurde, führen Sie ipvsadm --clear (oder ähnlich) aus. um die IPVS-Tabellen Ihres Systems zurückzusetzen. Der Zurücksetzungsvorgang bereinigt Ihre Kubeconfig-Dateien nicht und Sie müssen sie manuell entfernen. Bitte überprüfen Sie den Inhalt der Datei $HOME/.kube/config. 4. Führen Sie abschließend den Join aus und das Problem ist gelöst.[root@k8s-node02 ~]# kubeadm join 192.168.140.128:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:a3d9827be411208258aea7f3ee9aa396956c0a77c8b570503dd677aa3b6eb6d8 [preflight] Ausführen von Pre-Flight-Checks [WARNUNG SystemVerification]: Diese Docker-Version ist nicht auf der Liste der validierten Versionen: 19.03.12. Neueste validierte Version: 18.09 [Preflight] Konfiguration aus dem Cluster wird gelesen … [preflight] Zu Ihrer Information: Sie können sich diese Konfigurationsdatei mit „kubectl -n kube-system get cm kubeadm-config -oyaml“ ansehen. [kubelet-start] Herunterladen der Konfiguration für das Kubelet aus der ConfigMap „kubelet-config-1.15“ im Kube-System-Namespace [kubelet-start] Schreibe die Kubelet-Konfiguration in die Datei „/var/lib/kubelet/config.yaml“ [kubelet-start] Schreibe eine Kubelet-Umgebungsdatei mit Flags in die Datei „/var/lib/kubelet/kubeadm-flags.env“ [kubelet-start] Aktivieren des Kubelet-Dienstes [kubelet-start] Warten darauf, dass Kubelet den TLS-Bootstrap ausführt … Dieser Knoten ist dem Cluster beigetreten: * Die Anforderung zur Zertifikatsignierung wurde an den API-Server gesendet und eine Antwort wurde empfangen. * Das Kubelet wurde über die neuen sicheren Verbindungsdetails informiert. Führen Sie „kubectl get nodes“ auf der Steuerebene aus, um zu sehen, wie dieser Knoten dem Cluster beitritt. 5. Überprüfen Sie den Masterknoten und treten Sie erfolgreich bei.[root@k8s-master01 ~]# kubectl Knoten abrufen NAME STATUS ROLLEN ALTER VERSION k8s-master01 Bereit Master 120m v1.15.1 k8s-node01 Bereit <keine> 100m v1.15.1 k8s-node02 Bereit <keine> 83m v1.15.1 Dies ist das Ende dieses Artikels über die Implementierung des Wiederbeitritts des K8S-Knotens zum Mastercluster. Weitere relevante Inhalte zum K8S-Knoten-Mastercluster finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
1. Gehen Sie zunächst auf die offizielle Website ...
erinnern: IDE-Festplatte: Die erste Festplatte is...
Vorwort Als Linux-Betriebs- und Wartungsingenieur...
Aufgrund von Unternehmensanforderungen müssen zwe...
Überblick In einer Datenbank wird ein Index verwe...
Für Anfänger, die gerade mit dem Erstellen einer ...
Datentyp: Die grundlegenden Regeln, die definiere...
Pure js implementiert eine mit einem Klick bearbe...
<Text> <div id="Wurzel"> &l...
Es gibt viele Tags in XHTML, aber nur wenige werd...
Manchmal müssen wir Server stapelweise bedienen, ...
1. Verwendung: (1) EXISTS-Nutzung Wählen Sie a.ba...
In diesem Artikel wird der spezifische Code für d...
Ich habe zuvor zum Einstieg in UDP ein einfaches ...
Vorwort Der Ubuntu-Server des Unternehmens platzi...