Kubeadm: porta 10251 e 10252 estão em uso

Criado em 7 jul. 2017  ·  13Comentários  ·  Fonte: kubernetes/kubeadm

Informação da versão

kubeadm v1.6.5

Reproduzir

No servidor mestre: (1) kubeadm init ; (2) kubeadm reset ; (3) kubeadm init novamente e obteve o erro 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

Solução

Eu verifico o status de uso de todas as portas. Parece que o kubeadm falhou ao redefinir controller e 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

Depois de matá-los, posso inicializar o cluster do 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

Em um mundo

Anexei a solução para usuários que desejam se livrar do mesmo problema.
Vocês poderiam verificar se é um bug?

Comentários muito úteis

Obrigado por registrar o problema!

Na verdade não acho que seja um bug. De alguma forma, você / kubeadm não fez a limpeza corretamente, pois os contêineres kube-scheduler e controller-manager ainda estavam em execução. Ou o docker os reiniciou de alguma forma.
Ou você mesmo iniciou o gerenciador de controlador e o programador de alguma forma.
Ou você ^ C'd kubeadm reset um pouco antes ...

Se isso acontecer com frequência, por favor, reabra, mas eu não acho que haja algo para consertar aqui realmente

Todos 13 comentários

Obrigado por registrar o problema!

Na verdade não acho que seja um bug. De alguma forma, você / kubeadm não fez a limpeza corretamente, pois os contêineres kube-scheduler e controller-manager ainda estavam em execução. Ou o docker os reiniciou de alguma forma.
Ou você mesmo iniciou o gerenciador de controlador e o programador de alguma forma.
Ou você ^ C'd kubeadm reset um pouco antes ...

Se isso acontecer com frequência, por favor, reabra, mas eu não acho que haja algo para consertar aqui realmente

@luxas Fair point. Vou prestar atenção ao problema. Se houver algo errado em minhas configurações que esteja causando o problema, eu gostaria de relatar isso.

Seguiu suas dicas, mas ainda estava com os mesmos problemas. Percebi que há minikube em execução, que teve que ser interrompido por usar as mesmas portas, mas lista os processos como "localkube".

Como disse @luxas , funcionou. Provavelmente a melhor solução, pois nada mais funcionou.
$ sudo kubeadm reset

Eu entrei nessa situação fazendo o downgrade do docker e depois tentando executar o minikube. kubeadm reset resolveu o problema conforme sugerido por @luxas .

kubeadm reset corrigiu o problema

docker ps; docker inspect etcd1 listou o contêiner etcd que estava usando os números de porta relacionados. Portanto, sudo kubeadm init falhou.
Como eu fiz: docker kill etcd1

Existem alguns outros problemas restantes sobre a inicialização do cluster kubernetes (SSH, kernel cgroups config, ...), essencialmente, saiba qual versão do Linux / Arquitetura você usa, mas isso pode ser esclarecido nos detalhes dos requisitos.

kubeadm reset
problema resolvido para mim também

Eu tenho o mesmo problema de inicialização do minikube.
E resolvi o problema com as seguintes etapas:
1 、 docker stop $ (docker ps -a -q)
2 、 use o parâmetro --extra-config de inicialização do minikube. como: minikube start --kubernetes-version = 1.17.2 --vm-driver = none kubelet.ignore-preflight-errors kubeadm.ignore-preflight-errors

Eu tenho o mesmo problema de inicialização do minikube.
E resolvi o problema com as seguintes etapas:
1 、 docker stop $ (docker ps -a -q)
2 、 use o parâmetro --extra-config de inicialização do minikube. como: minikube start --kubernetes-version = 1.17.2 --vm-driver = none kubelet.ignore-preflight-errors kubeadm.ignore-preflight-errors

Olá a todos,
Estou tentando instalar o Kubernetes no ubuntu VM, mas infelizmente estou enfrentando alguns problemas, apesar da redefinição do kubeadm.
root @ KVM : ~ # kubeadm init --config = kubeadm-config.yaml --upload-certs | tee kubeadm-init.out # Salvar saída para revisão futura
W0719 22: 06: 28.075574 15363 configset.go: 202] AVISO: o kubeadm não pode validar configurações de componentes para grupos de API [kubelet.config.k8s.io kubeproxy.config.k8s.io]
[init] Usando a versão do Kubernetes: v1.18.1
[preflight] Execução de verificações pré-voo
[AVISO IsDockerSystemdCheck]: detectou "cgroupfs" como o driver Docker cgroup. O driver recomendado é "systemd". Siga o guia em https://kubernetes.io/docs/setup/cri/
[preflight] Extração de imagens necessárias para configurar um cluster Kubernetes
[preflight] Isso pode levar um ou dois minutos, dependendo da velocidade de sua conexão de internet
[preflight] Você também pode executar esta ação com antecedência usando 'kubeadm config images pull'
[kubelet-start] Gravando o arquivo de ambiente kubelet com sinalizadores no arquivo "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Gravando a configuração do kubelet no arquivo "/var/lib/kubelet/config.yaml"
[kubelet-start] Iniciando o kubelet
[certs] Usando a pasta certificateDir "/ etc / kubernetes / pki"
[certs] Gerando certificado e chave "ca"
[certs] Gerando certificado e chave "apiserver"
[certs] apiserver servindo certificado é assinado para nomes DNS [ahmed-kvm kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local k8smaster] e IPs [xxxx xxxx]
[certs] Gerando certificado e chave "apiserver-kubelet-client"
[certs] Gerando certificado e chave "front-proxy-ca"
[certs] Gerando certificado e chave "front-proxy-client"
[certs] Gerando certificado e chave "etcd / ca"
[certs] Gerando certificado e chave "etcd / server"
[certs] certificado de serviço de etcd / servidor assinado para nomes DNS [ahmed-kvm localhost] e IPs [xxxx xxxx]
[certs] Gerando certificado e chave "etcd / peer"
[certs] etcd / peer serving cert é assinado para nomes DNS [ahmed-kvm localhost] e IPs [xxxx xxxx]
[certs] Gerando certificado e chave "etcd / healthcheck-client"
[certs] Gerando certificado e chave "apiserver-etcd-client"
[certs] Gerando chave "sa" e chave pública
[kubeconfig] Usando a pasta kubeconfig "/ etc / kubernetes"
[kubeconfig] Gravando o arquivo kubeconfig "admin.conf"
[kubeconfig] Gravando o arquivo kubeconfig "kubelet.conf"
[kubeconfig] Gravando o arquivo kubeconfig "controller-manager.conf"
[kubeconfig] Gravando o arquivo kubeconfig "scheduler.conf"
[control-plane] Usando a pasta de manifesto "/ etc / kubernetes / manifests"
[control-plane] Criando manifesto de pod estático para "kube-apiserver"
W0719 22: 06: 31.223537 15363 manifestos.go: 225] o modo de autorização padrão do kube-apiserver é "Nó, RBAC"; usando "Nó, RBAC"
[control-plane] Criando manifesto de pod estático para "kube-controller-manager"
W0719 22: 06: 31.224263 15363 manifestos.go: 225] o modo de autorização padrão do kube-apiserver é "Nó, RBAC"; usando "Nó, RBAC"
[control-plane] Criando manifesto de pod estático para "kube-scheduler"
[etcd] Criação de manifesto de pod estático para etcd local em "/ etc / kubernetes / manifests"
[wait-control-plane] Aguardando o kubelet inicializar o plano de controle como pods estáticos do diretório "/ etc / kubernetes / manifests". Isso pode levar até 4m0s
[kubelet-check] Tempo limite inicial de 40 segundos passado.

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 execução de erro wait-control-plane: não foi possível inicializar um cluster Kubernetes
Para ver o rastreamento de pilha deste erro execute com --v = 5 ou superior

Obrigado pela ajuda

Para qualquer pessoa que esteja enfrentando esse problema, verifique se você tinha microk8s instalado e remova. Esse era o meu problema

sudo kubeadm reset

resolveu o meu também

Esta página foi útil?
0 / 5 - 0 avaliações