首页 > 解决方案 > kubernetes - 无法加入主节点 - 错误执行阶段预检:无法验证 API 服务器的身份

问题描述

我是 k8s 的新手,所以对于具有 k8s 专业知识的人来说,这可能是一个非常简单的问题。

我正在使用两个节点

  1. 主控 - 2cpu,2 GB 内存
  2. worker - 1 个 CPU,1 GB 内存
  3. 操作系统-ubuntu-hashicorp/bionic64

我确实成功设置了主节点,我可以看到它已启动并正在运行

vagrant@master:~$ kubectl get nodes
NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   29m   v1.18.2

这是我生成的令牌

vagrant@master:~$ kubeadm token create --print-join-command
W0419 13:45:52.513532   16403 configset.go:202] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
kubeadm join 10.0.2.15:6443 --token xuz63z.todnwgijqb3z1vhz     --discovery-token-ca-cert-hash sha256:d4dadda6fa90c94eca1c8dcd3a441af24bb0727ffc45c0c27161ee8f7e883521 

问题- 但是当我尝试从工作节点加入它时,我得到了

vagrant@worker:~$ sudo kubeadm join 10.0.2.15:6443 --token xuz63z.todnwgijqb3z1vhz     --discovery-token-ca-cert-hash sha256:d4dadda6fa90c94eca1c8dcd3a441af24bb0727ffc45c0c27161ee8f7e883521 
W0419 13:46:17.651819   15987 join.go:346] [preflight] WARNING: JoinControlPane.controlPlane settings will be ignored when control-plane flag is not set.
[preflight] Running pre-flight checks
        [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
error execution phase preflight: couldn't validate the identity of the API Server: Get https://10.0.2.15:6443/api/v1/namespaces/kube-public/configmaps/cluster-info?timeout=10s: dial tcp 10.0.2.15:6443: connect: connection refused
To see the stack trace of this error execute with --v=5 or higher

这是被占用的端口

10.0.2.15:2379 
10.0.2.15:2380 
10.0.2.15:68

请注意,我正在使用来自 -

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

标签: kubernetes

解决方案


使用这个--apiserver-advertise-address对我有用:

sudo kubeadm init --apiserver-advertise-address=172.16.28.10 --pod-network-cidr=192.168.0.0/16

kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml

我用过印花布并为我工作。

在加入的成员节点中:

kubeadm join 172.16.28.10:6443 --token 2jm9hd.o2gulx4x1b8l1t5d \ --discovery-token-ca-cert-hash sha256:b8b679e86c4d228bfa486086f18dcac4760e5871e8dd023ec166acfd93781595


推荐阅读