Kubeadm: 端口 10251 和 10252 正在使用中

创建于 2017-07-07  ·  13评论  ·  资料来源: kubernetes/kubeadm

版本信息

kubeadm v1.6.5

复制

在主服务器中: (1) kubeadm init ; (2) kubeadm reset ; (3) kubeadm init再次出现错误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

解决方案

我检查所有端口的使用状态。 kubeadm 似乎未能重置controllerscheduler

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

杀死它们后,我可以初始化 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

总之一句话

我为想要摆脱相同问题的用户附上了解决方案。
大家能不能看看是不是BUG?

最有用的评论

感谢您提交问题!

我不认为这真的是一个错误。 不知何故你/kubeadm 没有正确清理,因为 kube-scheduler 和 controller-manager 容器仍在运行。 或者 docker 以某种方式重新启动了它们。
或者你自己启动了控制器管理器和调度器。
或者你 ^C'd kubeadm reset提前一点...

如果经常发生,请重新打开,但我认为这里没有什么可以解决的

所有13条评论

感谢您提交问题!

我不认为这真的是一个错误。 不知何故你/kubeadm 没有正确清理,因为 kube-scheduler 和 controller-manager 容器仍在运行。 或者 docker 以某种方式重新启动了它们。
或者你自己启动了控制器管理器和调度器。
或者你 ^C'd kubeadm reset提前一点...

如果经常发生,请重新打开,但我认为这里没有什么可以解决的

@luxas公平点。 我会注意这个问题。 如果我的配置有问题导致问题,我想报告。

按照您的提示操作,但仍然遇到相同的问题。 意识到有 minikube 正在运行,由于它使用相同的端口,因此必须停止它,但将进程列为“localkube”。

就像@luxas所说,这
$ sudo kubeadm 重置

我通过降级 docker 然后尝试运行 minikube 陷入了这种情况。 kubeadm reset按照@luxas 的建议解决了这个问题。

kubeadm reset 解决了这个问题

docker ps; docker inspect etcd1列出了使用相关端口号的 etcd 容器。 因此sudo kubeadm init未能成功。
正如我所做的那样: docker kill etcd1

关于初始化 kubernetes 集群还有一些其他问题(SSH、内核 cgroups 配置,...),基本上知道你使用什么版本的 Linux/架构,但这可能会在需求细节中得到澄清。

kubeadm 重置
也为我解决了问题

我有同样的 minikube 启动问题。
我通过以下步骤解决了这个问题:
1、docker stop $(docker ps -a -q)
2、使用minikube启动的--extra-config参数。 如:minikube start --kubernetes-version=1.17.2 --vm-driver=none kubelet.ignore-preflight-errors kubeadm.ignore-preflight-errors

我有同样的 minikube 启动问题。
我通过以下步骤解决了这个问题:
1、docker stop $(docker ps -a -q)
2、使用minikube启动的--extra-config参数。 如:minikube start --kubernetes-version=1.17.2 --vm-driver=none kubelet.ignore-preflight-errors kubeadm.ignore-preflight-errors

大家好,
我正在尝试在 ubuntu VM 上安装 Kubernetes,但不幸的是,尽管 kubeadm 已重置,但我仍面临一些问题。
root@KVM :~# kubeadm init --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.out # 保存输出以备将来查看
W0719 22:06:28.075574 15363 configset.go:202] 警告:kubeadm 无法验证 API 组的组件配置 [kubelet.config.k8s.io kubeproxy.config.k8s.io]
[init] 使用 Kubernetes 版本:v1.18.1
[预检] 运行预检
[警告 IsDockerSystemdCheck]:检测到“cgroupfs”作为 Docker cgroup 驱动程序。 推荐的驱动程序是“systemd”。 请按照https://kubernetes.io/docs/setup/cri/ 上的指南进行操作
[预检] 拉取设置 Kubernetes 集群所需的镜像
[预检] 这可能需要一两分钟,具体取决于您的互联网连接速度
[预检] 您也可以使用“kubeadm config images pull”预先执行此操作
[kubelet-start] 将带有标志的 kubelet 环境文件写入文件“/var/lib/kubelet/kubeadm-flags.env”
[kubelet-start] 将 kubelet 配置写入文件“/var/lib/kubelet/config.yaml”
[kubelet-start] 启动 kubelet
[certs] 使用 certificateDir 文件夹“/etc/kubernetes/pki”
[certs] 生成“ca”证书和密钥
[certs] 生成“apiserver”证书和密钥
[certs] apiserver 服务证书为 DNS 名称 [ahmed-kvm kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local k8smaster] 和 IPs [xxxx xxxx] 签名
[certs] 生成“apiserver-kubelet-client”证书和密钥
[certs] 生成“front-proxy-ca”证书和密钥
[certs] 生成“前端代理客户端”证书和密钥
[certs] 生成“etcd/ca”证书和密钥
[certs] 生成“etcd/server”证书和密钥
[certs] etcd/server 服务证书为 DNS 名称 [ahmed-kvm localhost] 和 IPs [xxxx xxxx] 签名
[certs] 生成“etcd/peer”证书和密钥
[certs] etcd/peer 服务证书为 DNS 名称 [ahmed-kvm localhost] 和 IP [xxxx xxxx] 签名
[certs] 生成“etcd/healthcheck-client”证书和密钥
[certs] 生成“apiserver-etcd-client”证书和密钥
[certs] 生成“sa”密钥和公钥
[kubeconfig] 使用 kubeconfig 文件夹“/etc/kubernetes”
[kubeconfig] 编写“admin.conf” kubeconfig 文件
[kubeconfig] 编写“kubelet.conf” kubeconfig 文件
[kubeconfig] 编写“controller-manager.conf” kubeconfig 文件
[kubeconfig] 编写“scheduler.conf” kubeconfig 文件
[控制平面] 使用清单文件夹“/etc/kubernetes/manifests”
[控制平面] 为“kube-apiserver”创建静态 Pod 清单
W0719 22:06:31.223537 15363 manifests.go:225] 默认的 kube-apiserver 授权模式是“Node,RBAC”; 使用“节点,RBAC”
[控制平面] 为“kube-controller-manager”创建静态 Pod 清单
W0719 22:06:31.224263 15363 manifests.go:225] 默认的 kube-apiserver 授权模式是“Node,RBAC”; 使用“节点,RBAC”
[控制平面] 为“kube-scheduler”创建静态 Pod 清单
[etcd] 在“/etc/kubernetes/manifests”中为本地 etcd 创建静态 Pod 清单
[wait-control-plane] 等待 kubelet 将控制平面作为静态 Pod 从目录“/etc/kubernetes/manifests”启动。 这最多可能需要 4 分钟
[kubelet-check] 初始超时 40 秒已过。

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'

错误执行阶段等待控制平面:无法初始化 Kubernetes 集群
要查看此错误的堆栈跟踪,请使用 --v=5 或更高版本执行

谢谢你的帮助

对于遇到此问题的任何人,请检查您是否安装并删除了microk8s 。 那是我的问题

sudo kubeadm reset

我的也解决了

此页面是否有帮助?
0 / 5 - 0 等级