• 安装部署
  • 单集群安装kubesphere能成功,但add nodes报错discovery.bootstrapToken.token: Invalid value: ""

创建部署问题时,请参考下面模板,你提供的信息越多,越容易及时获得解答。
你只花一分钟创建的问题,不能指望别人花上半个小时给你解答。
发帖前请点击 发表主题 右边的 预览(👀) 按钮,确保帖子格式正确。

操作系统信息
统信uos 20

Kubernetes版本信息
v1.22.12

容器运行时
docker 20.10.8

KubeSphere版本信息
v3.3.2。在线安装。

问题是什么

直接多节点安装也是报这个错,所以先装了单集群能成功部署,但后续添加节点还是报错

[discovery.bootstrapToken.token: Invalid value: "“: the bootstrap token is invalid, discovery.tlsBootstrapToken: Invalid value: ”": the bootstrap token is invalid]

日志
./kk add nodes -f sample.yaml


| | / / | | | | / /

| |/ / _ _| |__ ___| |/ / ___ _ _

| \| | | | '_ \ / _ \ \ / _ \ | | |

| |\ \ || | |) | __/ |\ \ __/ |_| |

\| \/\,|./ \\| \/\|\__, |

                                __/ |

                               |___/

17:17:57 CST [GreetingsModule] Greetings

17:17:57 CST message: [node2]

Verification successful

Greetings, KubeKey!

17:17:58 CST message: [master]

Verification successful

Greetings, KubeKey!

17:17:58 CST success: [node2]

17:17:58 CST success: [master]

17:17:58 CST [NodePreCheckModule] A pre-check on nodes

17:18:02 CST success: [node2]

17:18:02 CST success: [master]

17:18:02 CST [ConfirmModule] Display confirmation form

+——–+——+——+———+———-+——-+——-+———+———–+——–+———————————-+———————————+————+————-+——————+————–+

| name | sudo | curl | openssl | ebtables | socat | ipset | ipvsadm | conntrack | chrony | docker | containerd | nfs client | ceph client | glusterfs client | time |

+——–+——+——+———+———-+——-+——-+———+———–+——–+———————————-+———————————+————+————-+——————+————–+

| master | y | y | y | y | y | y | | y | | Verification successful

20.10.8 | Verification successful

v1.4.9 | | | | CST 17:18:02 |

| node2 | y | y | y | y | y | y | | y | | Verification successful

20.10.8 | Verification successful

v1.4.9 | | | | CST 17:17:59 |

+——–+——+——+———+———-+——-+——-+———+———–+——–+———————————-+———————————+————+————-+——————+————–+

This is a simple check of your environment.

Before installation, ensure that your machines meet all requirements specified at

https://github.com/kubesphere/kubekey#requirements-and-recommendations

Continue this installation? [yes/no]: yes

17:18:05 CST success: [LocalHost]

17:18:05 CST [NodeBinariesModule] Download installation binaries

17:18:05 CST message: [localhost]

downloading amd64 kubeadm v1.22.12 …

17:18:05 CST message: [localhost]

kubeadm is existed

17:18:05 CST message: [localhost]

downloading amd64 kubelet v1.22.12 …

17:18:05 CST message: [localhost]

kubelet is existed

17:18:05 CST message: [localhost]

downloading amd64 kubectl v1.22.12 …

17:18:05 CST message: [localhost]

kubectl is existed

17:18:05 CST message: [localhost]

downloading amd64 helm v3.9.0 …

17:18:06 CST message: [localhost]

helm is existed

17:18:06 CST message: [localhost]

downloading amd64 kubecni v0.9.1 …

17:18:06 CST message: [localhost]

kubecni is existed

17:18:06 CST message: [localhost]

downloading amd64 crictl v1.24.0 …

17:18:06 CST message: [localhost]

crictl is existed

17:18:06 CST message: [localhost]

downloading amd64 etcd v3.4.13 …

17:18:06 CST message: [localhost]

etcd is existed

17:18:06 CST message: [localhost]

downloading amd64 docker 20.10.8 …

17:18:07 CST message: [localhost]

docker is existed

17:18:07 CST success: [LocalHost]

17:18:07 CST [ConfigureOSModule] Get OS release

17:18:07 CST success: [node2]

17:18:07 CST success: [master]

17:18:07 CST [ConfigureOSModule] Prepare to init OS

17:18:11 CST success: [node2]

17:18:11 CST success: [master]

17:18:11 CST [ConfigureOSModule] Generate init os script

17:18:11 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:18:12 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:18:12 CST success: [node2]

17:18:12 CST success: [master]

17:18:12 CST [ConfigureOSModule] Exec init os script

17:18:13 CST stdout: [node2]

Verification successful

net.ipv4.ip_forward = 1

net.bridge.bridge-nf-call-arptables = 1

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.ipv4.ip_local_reserved_ports = 30000-32767

vm.max_map_count = 262144

vm.swappiness = 1

fs.inotify.max_user_instances = 524288

kernel.pid_max = 65535

17:20:54 CST stdout: [master]

Verification successful

setenforce: SELinux is disabled

Disabled

net.ipv4.ip_forward = 1

net.bridge.bridge-nf-call-arptables = 1

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.ipv4.ip_local_reserved_ports = 30000-32767

vm.max_map_count = 262144

vm.swappiness = 1

fs.inotify.max_user_instances = 524288

kernel.pid_max = 65535

17:20:54 CST success: [node2]

17:20:54 CST success: [master]

17:20:54 CST [ConfigureOSModule] configure the ntp server for each node

17:20:54 CST skipped: [node2]

17:20:54 CST skipped: [master]

17:20:54 CST [KubernetesStatusModule] Get kubernetes cluster status

17:20:59 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n1”: invalid syntax

17:20:59 CST success: [master]

17:20:59 CST [InstallContainerModule] Sync docker binaries

17:20:59 CST skipped: [node2]

17:20:59 CST skipped: [master]

17:20:59 CST [InstallContainerModule] Generate docker service

17:20:59 CST skipped: [node2]

17:20:59 CST skipped: [master]

17:20:59 CST [InstallContainerModule] Generate docker config

17:21:00 CST skipped: [node2]

17:21:00 CST skipped: [master]

17:21:00 CST [InstallContainerModule] Enable docker

17:21:00 CST skipped: [node2]

17:21:00 CST skipped: [master]

17:21:00 CST [InstallContainerModule] Add auths to container runtime

17:21:00 CST skipped: [node2]

17:21:00 CST skipped: [master]

17:21:00 CST [PullModule] Start to pull images on all nodes

17:21:00 CST message: [master]

downloading image: kubesphere/pause:3.5

17:21:00 CST message: [node2]

downloading image: kubesphere/pause:3.5

17:21:04 CST message: [master]

downloading image: kubesphere/kube-apiserver:v1.22.12

17:21:07 CST message: [master]

downloading image: kubesphere/kube-controller-manager:v1.22.12

17:21:10 CST message: [master]

downloading image: kubesphere/kube-scheduler:v1.22.12

17:21:13 CST message: [master]

downloading image: kubesphere/kube-proxy:v1.22.12

17:21:16 CST message: [node2]

downloading image: kubesphere/kube-proxy:v1.22.12

17:21:18 CST message: [master]

downloading image: coredns/coredns:1.8.0

17:21:21 CST message: [master]

downloading image: kubesphere/k8s-dns-node-cache:1.15.12

17:21:24 CST message: [master]

downloading image: calico/kube-controllers:v3.23.2

17:21:27 CST message: [master]

downloading image: calico/cni:v3.23.2

17:21:30 CST message: [master]

downloading image: calico/node:v3.23.2

17:21:34 CST message: [master]

downloading image: calico/pod2daemon-flexvol:v3.23.2

17:21:48 CST message: [node2]

downloading image: coredns/coredns:1.8.0

17:22:04 CST message: [node2]

downloading image: kubesphere/k8s-dns-node-cache:1.15.12

17:22:19 CST message: [node2]

downloading image: calico/kube-controllers:v3.23.2

17:22:52 CST message: [node2]

downloading image: calico/cni:v3.23.2

17:23:10 CST message: [node2]

downloading image: calico/node:v3.23.2

17:23:29 CST message: [node2]

downloading image: calico/pod2daemon-flexvol:v3.23.2

17:23:47 CST success: [master]

17:23:47 CST success: [node2]

17:23:47 CST [ETCDPreCheckModule] Get etcd status

17:23:47 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n1”: invalid syntax

17:23:47 CST success: [master]

17:23:47 CST [CertsModule] Fetch etcd certs

17:23:47 CST success: [master]

17:23:47 CST [CertsModule] Generate etcd Certs

[certs] Using existing ca certificate authority

[certs] Using existing admin-master certificate and key on disk

[certs] Using existing member-master certificate and key on disk

[certs] Using existing node-master certificate and key on disk

17:23:47 CST success: [LocalHost]

17:23:47 CST [CertsModule] Synchronize certs file

17:23:47 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:23:48 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:23:50 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:23:52 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:23:53 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:23:54 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:23:55 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:23:56 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:23:57 CST success: [master]

17:23:57 CST [CertsModule] Synchronize certs file to master

17:23:57 CST skipped: [master]

17:23:57 CST [InstallETCDBinaryModule] Install etcd using binary

17:23:58 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:23:59 CST success: [master]

17:23:59 CST [InstallETCDBinaryModule] Generate etcd service

17:24:00 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:00 CST success: [master]

17:24:00 CST [InstallETCDBinaryModule] Generate access address

17:24:00 CST success: [master]

17:24:00 CST [ETCDConfigureModule] Health check on exist etcd

17:24:00 CST skipped: [master]

17:24:00 CST [ETCDConfigureModule] Generate etcd.env config on new etcd

17:24:01 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:02 CST success: [master]

17:24:02 CST [ETCDConfigureModule] Refresh etcd.env config on all etcd

17:24:02 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:03 CST success: [master]

17:24:03 CST [ETCDConfigureModule] Restart etcd

17:24:07 CST stdout: [master]

Verification successful

17:24:07 CST success: [master]

17:24:07 CST [ETCDConfigureModule] Health check on all etcd

17:24:07 CST success: [master]

17:24:07 CST [ETCDConfigureModule] Refresh etcd.env config to exist mode on all etcd

17:24:08 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:09 CST success: [master]

17:24:09 CST [ETCDConfigureModule] Health check on all etcd

17:24:10 CST success: [master]

17:24:10 CST [ETCDBackupModule] Backup etcd data regularly

17:24:10 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:12 CST success: [master]

17:24:12 CST [ETCDBackupModule] Generate backup ETCD service

17:24:13 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:14 CST success: [master]

17:24:14 CST [ETCDBackupModule] Generate backup ETCD timer

17:24:14 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:15 CST success: [master]

17:24:15 CST [ETCDBackupModule] Enable backup etcd service

17:24:15 CST success: [master]

17:24:15 CST [InstallKubeBinariesModule] Synchronize kubernetes binaries

17:24:16 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:17 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:18 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:19 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:21 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:23 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:23 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:24 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:25 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:27 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:28 CST success: [node2]

17:24:28 CST success: [master]

17:24:28 CST [InstallKubeBinariesModule] Synchronize kubelet

17:24:28 CST success: [node2]

17:24:28 CST success: [master]

17:24:28 CST [InstallKubeBinariesModule] Generate kubelet service

17:24:28 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:30 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:30 CST success: [node2]

17:24:30 CST success: [master]

17:24:30 CST [InstallKubeBinariesModule] Enable kubelet service

17:24:31 CST success: [node2]

17:24:31 CST success: [master]

17:24:31 CST [InstallKubeBinariesModule] Generate kubelet env

17:24:31 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:31 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:32 CST success: [node2]

17:24:32 CST success: [master]

17:24:32 CST [JoinNodesModule] Generate kubeadm config

17:24:32 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:33 CST [ERRO] check remote file exist err: strconv.Atoi: parsing “Verification successful\r\n0”: invalid syntax

17:24:34 CST success: [node2]

17:24:34 CST success: [master]

17:24:34 CST [JoinNodesModule] Join control-plane node

17:24:34 CST stdout: [master]

Verification successful

[discovery.bootstrapToken.token: Invalid value: "“: the bootstrap token is invalid, discovery.tlsBootstrapToken: Invalid value: ”": the bootstrap token is invalid]

To see the stack trace of this error execute with –v=5 or higher