Kubeadm: Port 10251 und 10252 werden verwendet

Erstellt am 7. Juli 2017  ·  13Kommentare  ·  Quelle: kubernetes/kubeadm

Versions Information

kubeadm v1.6.5

Reproduzieren

Im Masterserver: (1) kubeadm init ; (2) kubeadm reset ; (3) kubeadm init erneut und bekam den Fehler port 10251 is in use, port 10252 is in use .

kubeadm init --token abcdef.1234567890abcdef --kubernetes-version v1.6.5
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
[init] Using Kubernetes version: v1.6.5
[init] Using Authorization mode: RBAC
[preflight] Running pre-flight checks
[preflight] Some fatal errors occurred:
    Port 10251 is in use
    Port 10252 is in use

Lösung

Ich überprüfe den Nutzungsstatus aller Ports. Anscheinend konnte kubeadm die controller und scheduler nicht zurücksetzen.

$ netstat -lnp | grep 1025
tcp6       0      0 :::10251                :::*                    LISTEN      4366/kube-scheduler
tcp6       0      0 :::10252                :::*                    LISTEN      4353/kube-controlle
$ kill 4366
$ kill 4353

Nachdem ich sie getötet habe, kann ich den Kubernetes-Cluster initialisieren.

kubeadm init --token abcdef.1234567890abcdef --kubernetes-version v1.6.5
[kubeadm] WARNING:  is in beta, please do not use it for production clusters.
[init] Using Kubernetes version: v1.6.5
[init] Using Authorization mode: RBAC
[preflight] Running pre-flight checks
[preflight] Starting the kubelet service
[certificates] Generated CA certificate and key.
[certificates] Generated API server certificate and key.
[certificates] API Server serving cert is signed for DNS names [xxx.xxx.xxx.xxx kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [xxx.xxx.xxx.xxx]
[certificates] Generated API server kubelet client certificate and key.
[certificates] Generated service account token signing key and public key.
[certificates] Generated front-proxy CA certificate and key.
[certificates] Generated front-proxy client certificate and key.
[certificates] Valid certificates and keys now exist in "/etc/kubernetes/pki"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"
[apiclient] Created API client, waiting for the control plane to become ready
[apiclient] All control plane components are healthy after 16.281203 seconds
[apiclient] Waiting for at least one node to register
[apiclient] First node has registered after 5.501873 seconds
[token] Using token: abcdef.1234567890abcdef
[apiconfig] Created RBAC rules
[addons] Created essential addon: kube-proxy
[addons] Created essential addon: kube-dns

Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run (as a regular user):

  sudo cp /etc/kubernetes/admin.conf $HOME/
  sudo chown $(id -u):$(id -g) $HOME/admin.conf
  export KUBECONFIG=$HOME/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  http://kubernetes.io/docs/admin/addons/

You can now join any number of machines by running the following on each node
as root:

  kubeadm join --token abcdef.1234567890abcdef xxx.xxx.xxx.xxx:6443

In einem Wort

Ich habe die Lösung für Benutzer angehängt, die das gleiche Problem loswerden möchten.
Könnten Sie überprüfen, ob es sich um einen Fehler handelt?

Hilfreichster Kommentar

Danke für die Einreichung des Problems!

Ich glaube nicht, dass es wirklich ein Bug ist. Irgendwie haben Sie/kubeadm nicht richtig aufgeräumt, da die Container kube-scheduler und controller-manager noch liefen. Oder Docker hat sie irgendwie neu gestartet.
Oder Sie haben den Controller-Manager und den Scheduler irgendwie selbst gestartet.
Oder Sie ^C'd kubeadm reset vorher ein bisschen rein...

Wenn es oft vorkommt, bitte wieder öffnen, aber ich glaube nicht, dass hier wirklich etwas zu reparieren ist

Alle 13 Kommentare

Danke für die Einreichung des Problems!

Ich glaube nicht, dass es wirklich ein Bug ist. Irgendwie haben Sie/kubeadm nicht richtig aufgeräumt, da die Container kube-scheduler und controller-manager noch liefen. Oder Docker hat sie irgendwie neu gestartet.
Oder Sie haben den Controller-Manager und den Scheduler irgendwie selbst gestartet.
Oder Sie ^C'd kubeadm reset vorher ein bisschen rein...

Wenn es oft vorkommt, bitte wieder öffnen, aber ich glaube nicht, dass hier wirklich etwas zu reparieren ist

@luxas Fairer Punkt. Ich werde dem Thema Aufmerksamkeit schenken. Wenn in meinen Konfigurationen etwas nicht stimmt, was das Problem verursacht, möchte ich dies melden.

Habe deine Tipps befolgt, hatte aber immer noch die gleichen Probleme. Es wurde festgestellt, dass Minikube ausgeführt wird, das gestoppt werden musste, da es die gleichen Ports verwendet, die Prozesse jedoch als "localkube" auflistet.

Wie @luxas sagte, das hat funktioniert. Wahrscheinlich die beste Lösung, da nichts anderes funktioniert hat.
$ sudo kubeadm zurücksetzen

Ich bin in diese Situation geraten, indem ich Docker heruntergestuft und dann versucht habe, Minikube auszuführen. kubeadm reset hat das Problem wie von @luxas vorgeschlagen

kubeadm reset hat das Problem behoben

docker ps; docker inspect etcd1 listete den etcd-Container auf, der die entsprechenden Portnummern verwendet. Daher war sudo kubeadm init nicht erfolgreich.
Wie ich: docker kill etcd1

Es gibt noch einige andere Probleme bei der Initialisierung des Kubernetes-Clusters (SSH, Kernel-Cgroups-Konfiguration, ...), wissen Sie im Wesentlichen, welche Version von Linux/Architektur Sie verwenden, aber das kann in den Anforderungsdetails geklärt werden.

kubeadm zurücksetzen
Problem bei mir auch behoben

Ich habe das gleiche Problem mit dem Minikube-Start.
Und ich habe das Problem mit den folgenden Schritten gelöst:
1、Docker Stop $(Docker ps -a -q)
2、Verwenden Sie den Parameter --extra-config des Minikube-Starts. wie: minikube start --kubernetes-version=1.17.2 --vm-driver=none kubelet.ignore-preflight-errors kubeadm.ignore-preflight-errors

Ich habe das gleiche Problem mit dem Minikube-Start.
Und ich habe das Problem mit den folgenden Schritten gelöst:
1、Docker Stop $(Docker ps -a -q)
2、Verwenden Sie den Parameter --extra-config des Minikube-Starts. wie: minikube start --kubernetes-version=1.17.2 --vm-driver=none kubelet.ignore-preflight-errors kubeadm.ignore-preflight-errors

Hallo allerseits,
Ich versuche, Kubernetes auf einer Ubuntu-VM zu installieren, aber leider habe ich trotz kubeadm-Reset ein Problem.
root@KVM :~# kubeadm init --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.out # Ausgabe für zukünftige Überprüfung speichern
W0719 22:06:28.075574 15363 configset.go:202] WARNUNG: kubeadm kann Komponentenkonfigurationen für API-Gruppen nicht validieren [kubelet.config.k8s.io kubeproxy.config.k8s.io]
[init] Kubernetes-Version verwenden: v1.18.1
[Preflight] Ausführen von Pre-Flight-Checks
[WARNUNG IsDockerSystemdCheck]: "cgroupfs" als Docker-Cgroup-Treiber erkannt. Der empfohlene Treiber ist "systemd". Bitte folgen Sie der Anleitung unter https://kubernetes.io/docs/setup/cri/
[Preflight] Zum Einrichten eines Kubernetes-Clusters erforderliche Bilder abrufen
[Preflight] Dies kann je nach Geschwindigkeit Ihrer Internetverbindung ein oder zwei Minuten dauern
[Preflight] Sie können diese Aktion auch vorher mit 'kubeadm config images pull' ausführen.
[kubelet-start] Schreiben einer Kubelet-Umgebungsdatei mit Flags in die Datei "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Kubelet-Konfiguration in Datei "/var/lib/kubelet/config.yaml" schreiben
[kubelet-start] Kubelet starten
[certs] Verwenden des CertificateDir-Ordners "/etc/kubernetes/pki"
[certs] Generieren von "ca"-Zertifikat und -Schlüssel
[certs] Generieren von "apiserver"-Zertifikat und -Schlüssel
[certs] Apiserver-Serving-Zertifikat ist für DNS-Namen [ahmed-kvm kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local k8smaster] und IPs [xxxx xxxx] signiert
[certs] Generieren von "apiserver-kubelet-client"-Zertifikat und -Schlüssel
[certs] Generieren von "front-proxy-ca"-Zertifikat und Schlüssel
[certs] Generieren von "Front-Proxy-Client"-Zertifikat und Schlüssel
[certs] Generieren von "etcd/ca"-Zertifikat und Schlüssel
[certs] Generieren von "etcd/server"-Zertifikat und -Schlüssel
[certs] etcd/server Serving Cert ist für DNS-Namen [ahmed-kvm localhost] und IPs [xxxx xxxx] signiert
[certs] Generieren von "etcd/peer"-Zertifikat und -Schlüssel
[certs] etcd/Peer Serving-Zertifikat ist für DNS-Namen [ahmed-kvm localhost] und IPs [xxxx xxxx ] signiert
[certs] Generieren von "etcd/healthcheck-client"-Zertifikat und -Schlüssel
[certs] Generieren von "apiserver-etcd-client"-Zertifikat und -Schlüssel
[certs] Generieren von "sa"-Schlüssel und öffentlichem Schlüssel
[kubeconfig] Verwenden des kubeconfig-Ordners "/etc/kubernetes"
[kubeconfig] kubeconfig-Datei "admin.conf" schreiben
[kubeconfig] kubeconfig-Datei "kubelet.conf" schreiben
[kubeconfig] Schreiben der kubeconfig-Datei "controller-manager.conf"
[kubeconfig] kubeconfig-Datei "scheduler.conf" schreiben
[control-plane] Manifestordner "/etc/kubernetes/manifests" verwenden
[control-plane] Statisches Pod-Manifest für "kube-apiserver" erstellen
W0719 22:06:31.223537 15363 manifests.go:225] der standardmäßige kube-apiserver-Autorisierungsmodus ist "Node,RBAC"; mit "Knoten,RBAC"
[control-plane] Statisches Pod-Manifest für "kube-controller-manager" erstellen
W0719 22:06:31.224263 15363 manifests.go:225] der standardmäßige kube-apiserver-Autorisierungsmodus ist "Node,RBAC"; mit "Knoten,RBAC"
[control-plane] Statisches Pod-Manifest für "kube-scheduler" erstellen
[etcd] Erstellen eines statischen Pod-Manifests für lokales etcd in "/etc/kubernetes/manifests"
[wait-control-plane] Warten darauf, dass das Kubelet die Steuerungsebene als statische Pods aus dem Verzeichnis "/etc/kubernetes/manifests" hochfährt. Dies kann bis zu 4m0s dauern
[kubelet-check] Anfängliches Timeout von 40s verstrichen.

Unfortunately, an error has occurred:
    timed out waiting for the condition

This error is likely caused by:
    - The kubelet is not running
    - The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)

If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands:
    - 'systemctl status kubelet'
    - 'journalctl -xeu kubelet'

Additionally, a control plane component may have crashed or exited when started by the container runtime.
To troubleshoot, list all containers using your preferred container runtimes CLI.

Here is one example how you may list all Kubernetes containers running in docker:
    - 'docker ps -a | grep kube | grep -v pause'
    Once you have found the failing container, you can inspect its logs with:
    - 'docker logs CONTAINERID'

Fehlerausführungsphase Wait-Control-Plane: Kubernetes-Cluster konnte nicht initialisiert werden
Um den Stack-Trace dieses Fehlers anzuzeigen, führen Sie mit --v=5 oder höher aus

Danke für Ihre Hilfe

Für jeden, der mit diesem Problem konfrontiert ist, überprüfen Sie, ob Sie microk8s installiert und entfernt haben. Das war mein Problem

sudo kubeadm reset

habe meine auch gelöst

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen