Kubeadm: los puertos 10251 y 10252 están en uso

Creado en 7 jul. 2017  ·  13Comentarios  ·  Fuente: kubernetes/kubeadm

Información de la versión

kubeadm v1.6.5

Reproducir

En el servidor maestro: (1) kubeadm init ; (2) kubeadm reset ; (3) kubeadm init nuevamente y obtuvo el error 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

Solución

Verifico el estado de uso de todos los puertos. Parece que kubeadm no pudo restablecer controller y 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

Después de matarlos, puedo inicializar el clúster de 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 una palabra

Adjunté la solución para los usuarios que desean deshacerse del mismo problema.
¿Podrían comprobar si hay un error?

Comentario más útil

¡Gracias por presentar el problema!

Realmente no creo que sea un error. De alguna manera, usted / kubeadm no se ha limpiado correctamente, ya que los contenedores kube-Scheduler y Controller-Manager todavía se estaban ejecutando. O Docker los reinició de alguna manera.
O inició el controlador-administrador y el programador usted mismo de alguna manera.
O ^ C'd kubeadm reset un poco de antemano ...

Si sucede con frecuencia, vuelva a abrir, pero no creo que haya algo que arreglar aquí realmente.

Todos 13 comentarios

¡Gracias por presentar el problema!

Realmente no creo que sea un error. De alguna manera, usted / kubeadm no se ha limpiado correctamente, ya que los contenedores kube-Scheduler y Controller-Manager todavía se estaban ejecutando. O Docker los reinició de alguna manera.
O inició el controlador-administrador y el programador usted mismo de alguna manera.
O ^ C'd kubeadm reset un poco de antemano ...

Si sucede con frecuencia, vuelva a abrir, pero no creo que haya algo que arreglar aquí realmente.

@luxas Fair point. Prestaré atención al problema. Si hay algún problema en mis configuraciones que cause el problema, me gustaría informarlo.

Seguí tus consejos, pero seguía teniendo los mismos problemas. Me di cuenta de que hay un minikube en ejecución, que tuvo que detenerse ya que usa los mismos puertos, pero enumera los procesos como "localkube".

Como dijo @luxas , esto funcionó. Probablemente la mejor solución ya que nada más funcionó.
$ sudo kubeadm restablecer

Entré en esta situación al degradar la ventana acoplable y luego intentar ejecutar minikube. kubeadm reset resolvió el problema como sugirió @luxas .

kubeadm reset solucionó el problema

docker ps; docker inspect etcd1 enumeró el contenedor etcd que estaba usando los números de puerto relacionados. Por lo tanto, sudo kubeadm init no tuvo éxito.
Como hice yo: docker kill etcd1

Quedan algunos otros problemas sobre la inicialización del clúster de kubernetes (SSH, configuración de cgroups del kernel, ...), esencialmente sepa qué versión de Linux / Arquitectura usa, pero eso puede aclararse en los detalles de los requisitos.

reinicio de kubeadm
problema solucionado para mí también

Tengo el mismo problema de inicio de minikube.
Y resolví el problema con los siguientes pasos:
1 、 docker stop $ (docker ps -a -q)
2 、 use el parámetro --extra-config del inicio de minikube. como: inicio de minikube --kubernetes-version = 1.17.2 --vm-driver = none kubelet.ignore-preflight-errors kubeadm.ignore-preflight-errors

Tengo el mismo problema de inicio de minikube.
Y resolví el problema con los siguientes pasos:
1 、 docker stop $ (docker ps -a -q)
2 、 use el parámetro --extra-config del inicio de minikube. como: inicio de minikube --kubernetes-version = 1.17.2 --vm-driver = none kubelet.ignore-preflight-errors kubeadm.ignore-preflight-errors

Hola a todos,
Estoy tratando de instalar Kubernetes en ubuntu VM, pero desafortunadamente estoy enfrentando algún problema a pesar del reinicio de kubeadm.
root @ KVM : ~ # kubeadm init --config = kubeadm-config.yaml --upload-certs | tee kubeadm-init.out # Guardar salida para revisión futura
W0719 22: 06: 28.075574 15363 configset.go: 202] ADVERTENCIA: kubeadm no puede validar las configuraciones de componentes para grupos de API [kubelet.config.k8s.io kubeproxy.config.k8s.io]
[init] Con la versión de Kubernetes: v1.18.1
[Preflight] Ejecución de comprobaciones previas al vuelo
[ADVERTENCIA IsDockerSystemdCheck]: se detectó "cgroupfs" como el controlador de Docker cgroup. El controlador recomendado es "systemd". Siga la guía en https://kubernetes.io/docs/setup/cri/
[Preflight] Obtención de imágenes necesarias para configurar un clúster de Kubernetes
[Preflight] Esto puede demorar uno o dos minutos, dependiendo de la velocidad de su conexión a Internet
[Preflight] También puede realizar esta acción de antemano usando 'kubeadm config images pull'
[kubelet-start] Escribiendo un archivo de entorno kubelet con banderas en el archivo "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Escribiendo la configuración de kubelet en el archivo "/var/lib/kubelet/config.yaml"
[kubelet-start] Iniciando el kubelet
[certs] Usando la carpeta certificateDir "/ etc / kubernetes / pki"
[certs] Generando certificado y clave "ca"
[certs] Generando certificado y clave "apiserver"
[certs] El certificado de servicio de apiserver está firmado para nombres DNS [ahmed-kvm kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local k8smaster] e IP [xxxx xxxx]
[certs] Generando el certificado y la clave "apiserver-kubelet-client"
[certs] Generando certificado y clave "front-proxy-ca"
[certs] Generando certificado y clave "front-proxy-client"
[certs] Generando certificado y clave "etcd / ca"
[certs] Generando certificado y clave "etcd / server"
[certs] etcd / server que sirve el certificado está firmado para nombres DNS [ahmed-kvm localhost] e IP [xxxx xxxx]
[certs] Generando certificado y clave "etcd / peer"
[certs] etcd / peer serve cert está firmado para nombres DNS [ahmed-kvm localhost] e IPs [xxxx xxxx]
[certs] Generando el certificado y la clave "etcd / healthcheck-client"
[certs] Generando el certificado y la clave "apiserver-etcd-client"
[certs] Generando clave "sa" y clave pública
[kubeconfig] Usando la carpeta kubeconfig "/ etc / kubernetes"
[kubeconfig] Escribiendo el archivo kubeconfig "admin.conf"
[kubeconfig] Escribiendo archivo "kubelet.conf" kubeconfig
[kubeconfig] Escribiendo el archivo kubeconfig "controller-manager.conf"
[kubeconfig] Escribiendo el archivo kubeconfig "planificador.conf"
[plano de control] Usando la carpeta de manifiesto "/ etc / kubernetes / manifiestos"
[control-plane] Creación de un manifiesto de pod estático para "kube-apiserver"
W0719 22: 06: 31.223537 15363 manifests.go: 225] el modo de autorización predeterminado de kube-apiserver es "Nodo, RBAC"; usando "Nodo, RBAC"
[control-plane] Creación de un manifiesto de pod estático para "kube-controller-manager"
W0719 22: 06: 31.224263 15363 manifests.go: 225] el modo de autorización predeterminado de kube-apiserver es "Nodo, RBAC"; usando "Nodo, RBAC"
[control-plane] Creación de un manifiesto de pod estático para "kube-Scheduler"
[etcd] Creación de un manifiesto de pod estático para etcd local en "/ etc / kubernetes / manifiestos"
[wait-control-plane] Esperando que kubelet inicie el plano de control como Pods estáticos desde el directorio "/ etc / kubernetes / manifests". Esto puede tardar hasta 4 min.
[kubelet-check] Pasó el tiempo de espera inicial de 40 segundos.

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'

fase de ejecución de error plano de control de espera: no se pudo inicializar un clúster de Kubernetes
Para ver el seguimiento de la pila de este error, ejecute con --v = 5 o superior

Gracias por tu ayuda

Para cualquier persona que se enfrente a este problema, verifique si tenía microk8s instalado y eliminado. Ese era mi problema

sudo kubeadm reset

Resuelto el mío también

¿Fue útil esta página
0 / 5 - 0 calificaciones