Kubeadm: les ports 10251 et 10252 sont en cours d'utilisation

Créé le 7 juil. 2017  ·  13Commentaires  ·  Source: kubernetes/kubeadm

Informations sur les versions

kubeadm v1.6.5

Reproduire

Dans le serveur maître : (1) kubeadm init ; (2) kubeadm reset ; (3) kubeadm init nouveau et j'ai obtenu l'erreur 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

Solution

Je vérifie l'état d'utilisation de tous les ports. Il semble que kubeadm n'ait pas réussi à réinitialiser les controller et scheduler .

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

Après les avoir tués, je peux initialiser le cluster kubernetes.

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

En un mot

J'ai joint la solution pour les utilisateurs qui souhaitent se débarrasser du même problème.
Pourriez-vous les gars vérifier s'il s'agit d'un bug?

Commentaire le plus utile

Merci d'avoir signalé le problème !

Je ne pense pas que ce soit vraiment un bug. D'une manière ou d'une autre, you/kubeadm n'a pas nettoyé correctement, car les conteneurs kube-scheduler et controller-manager étaient toujours en cours d'exécution. Ou docker les a redémarrés d'une manière ou d'une autre.
Ou vous avez démarré vous-même le gestionnaire de contrôleur et le planificateur.
Ou vous avez ^C'd kubeadm reset un peu à l'avance...

Si cela arrive souvent, veuillez rouvrir, mais je ne pense pas qu'il y ait vraiment quelque chose à réparer ici

Tous les 13 commentaires

Merci d'avoir signalé le problème !

Je ne pense pas que ce soit vraiment un bug. D'une manière ou d'une autre, you/kubeadm n'a pas nettoyé correctement, car les conteneurs kube-scheduler et controller-manager étaient toujours en cours d'exécution. Ou docker les a redémarrés d'une manière ou d'une autre.
Ou vous avez démarré vous-même le gestionnaire de contrôleur et le planificateur.
Ou vous avez ^C'd kubeadm reset un peu à l'avance...

Si cela arrive souvent, veuillez rouvrir, mais je ne pense pas qu'il y ait vraiment quelque chose à réparer ici

@luxas Fair point. Je ferai attention au problème. Si quelque chose ne va pas dans mes configurations qui cause le problème, j'aimerais le signaler.

J'ai suivi vos conseils, mais j'ai toujours les mêmes problèmes. Réalisé qu'il y a minikube en cours d'exécution, qui a dû être arrêté car il utilise les mêmes ports, mais répertorie les processus comme "localkube".

Comme @luxas l'a dit, cela a fonctionné. Probablement la meilleure solution car rien d'autre n'a fonctionné.
$ sudo kubeadm réinitialiser

Je me suis retrouvé dans cette situation en déclassant docker puis en essayant d'exécuter minikube. kubeadm reset a résolu le problème comme suggéré par @luxas .

kubeadm reset a résolu le problème

docker ps; docker inspect etcd1 répertoriait le conteneur etcd qui utilisait les numéros de port associés. Comme par conséquent sudo kubeadm init n'a pas réussi.
Comme moi : docker kill etcd1

Il reste d'autres problèmes concernant l'initialisation du cluster kubernetes (SSH, configuration des groupes de contrôle du noyau,...), essentiellement savoir quelle version de Linux/Architecture utilisez-vous, mais cela peut être clarifié dans les détails des exigences.

kubeadm réinitialiser
problème résolu pour moi aussi

J'ai le même problème de démarrage de minikube.
Et j'ai résolu le problème avec les étapes suivantes:
1、docker stop $(docker ps -a -q)
2, utilisez le paramètre --extra-config du démarrage de minikube. comme : minikube start --kubernetes-version=1.17.2 --vm-driver=none kubelet.ignore-preflight-errors kubeadm.ignore-preflight-errors

J'ai le même problème de démarrage de minikube.
Et j'ai résolu le problème avec les étapes suivantes:
1、docker stop $(docker ps -a -q)
2, utilisez le paramètre --extra-config du démarrage de minikube. comme : minikube start --kubernetes-version=1.17.2 --vm-driver=none kubelet.ignore-preflight-errors kubeadm.ignore-preflight-errors

Salut à tous,
J'essaie d'installer Kubernetes sur une machine virtuelle Ubuntu, mais malheureusement, je rencontre un problème malgré la réinitialisation de kubeadm.
root@KVM :~# kubeadm init --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.out # Enregistrer la sortie pour un examen ultérieur
W0719 22:06:28.075574 15363 configset.go:202] AVERTISSEMENT : kubeadm ne peut pas valider les configurations de composants pour les groupes d'API [kubelet.config.k8s.io kubeproxy.config.k8s.io]
[init] Utilisation de la version Kubernetes : v1.18.1
[preflight] Exécuter des vérifications avant le vol
[AVERTISSEMENT IsDockerSystemdCheck] : a détecté « cgroupfs » en tant que pilote de groupe de contrôle Docker. Le pilote recommandé est "systemd". Veuillez suivre le guide sur https://kubernetes.io/docs/setup/cri/
[contrôle en amont] Extraction des images requises pour la configuration d'un cluster Kubernetes
[vol en amont] Cela peut prendre une minute ou deux, selon la vitesse de votre connexion Internet
[preflight] Vous pouvez également effectuer cette action au préalable en utilisant 'kubeadm config images pull'
[kubelet-start] Écriture du fichier d'environnement kubelet avec des indicateurs dans le fichier "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Écriture de la configuration de kubelet dans le fichier "/var/lib/kubelet/config.yaml"
[kubelet-start] Démarrer le kubelet
[certs] Utilisation du dossier certificateDir "/etc/kubernetes/pki"
[certs] Génération du certificat et de la clé "ca"
[certs] Génération du certificat et de la clé "apiserver"
[certs] le certificat de service apiserver est signé pour les noms DNS [ahmed-kvm kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local k8smaster] et les adresses IP [xxxx xxxx]
[certs] Génération du certificat et de la clé "apiserver-kubelet-client"
[certs] Génération du certificat et de la clé "front-proxy-ca"
[certs] Génération du certificat et de la clé "front-proxy-client"
[certs] Génération du certificat et de la clé "etcd/ca"
[certs] Génération du certificat et de la clé "etcd/server"
[certs] etcd/server servant cert est signé pour les noms DNS [ahmed-kvm localhost] et les adresses IP [xxxx xxxx]
[certs] Génération du certificat et de la clé "etcd/peer"
[certs] le certificat de service etcd/peer est signé pour les noms DNS [ahmed-kvm localhost] et les adresses IP [xxxx xxxx ]
[certs] Génération du certificat et de la clé "etcd/healthcheck-client"
[certs] Génération du certificat et de la clé "apiserver-etcd-client"
[certs] Génération de la clé "sa" et de la clé publique
[kubeconfig] Utilisation du dossier kubeconfig "/etc/kubernetes"
[kubeconfig] Écriture du fichier kubeconfig "admin.conf"
[kubeconfig] Écriture du fichier kubeconfig "kubelet.conf"
[kubeconfig] Écriture du fichier kubeconfig "controller-manager.conf"
[kubeconfig] Écriture du fichier kubeconfig "scheduler.conf"
[control-plane] Utilisation du dossier manifest "/etc/kubernetes/manifests"
[control-plane] Création d'un manifeste de pod statique pour "kube-apiserver"
W0719 22:06:31.223537 15363 manifests.go:225] le mode d'autorisation kube-apiserver par défaut est "Node,RBAC" ; en utilisant "Noeud,RBAC"
[control-plane] Création d'un manifeste de pod statique pour "kube-controller-manager"
W0719 22:06:31.224263 15363 manifests.go:225] le mode d'autorisation kube-apiserver par défaut est "Node, RBAC" ; en utilisant "Noeud,RBAC"
[control-plane] Création d'un manifeste de pod statique pour "kube-scheduler"
[etcd] Création d'un manifeste de pod statique pour etcd local dans "/etc/kubernetes/manifests"
[wait-control-plane] En attente que le kubelet démarre le plan de contrôle en tant que pods statiques à partir du répertoire "/etc/kubernetes/manifests". Cela peut prendre jusqu'à 4m0s
[kubelet-check] Le délai initial de 40 s est dépassé.

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'

erreur phase d'exécution wait-control-plane : impossible d'initialiser un cluster Kubernetes
Pour voir la trace de la pile de cette erreur, exécutez avec --v=5 ou supérieur

Merci pour ton aide

Pour toute personne confrontée à ce problème, vérifiez si microk8s installé et supprimez-le. C'était mon problème

sudo kubeadm reset

a résolu le mien aussi

Cette page vous a été utile?
0 / 5 - 0 notes