【发布时间】:2021-09-23 23:55:41
【问题描述】:
我有一个主节点,现在我想从一个工作节点加入主节点,我生成了一个永不过期的令牌并执行加入命令,但是我收到了这个错误:
[root@worker-node1 ~]# kubeadm join 192.168.18.136:6443 --token cjxj26.ibwrtisae30ypis6 \
--discovery-token-ca-cert-hash sha256:2659517cbbb2623b3d93408a4ab50f3592a3d021adf25d25c8050dd44345eadd [飞行前] 运行飞行前检查 [警告 IsDockerSystemdCheck]:检测到“cgroupfs”作为 Docker cgroup 驱动程序。推荐的驱动程序是“systemd”。请按照https://kubernetes.io/docs/setup/cri/ 的指南进行操作 [警告主机名]:无法访问主机名“worker-node1” [警告主机名]:主机名“worker-node1”:在 192.168.18.2:53 上查找 worker-node1:没有这样的主机 ^C [root@worker-node1 ~]# kubeadm join 192.168.18.136:6443 --token cjxj26.ibwrtisae30ypis6 --discovery-token-ca-cert-hash sha256:2659517cbbb2623b3d93408a4ab50f3592a3d021adf24525add--adf245d25c8050edd4 I0714 22:05:12.684249 1567 join.go:395] [preflight] 发现 NodeName 为空;使用 OS 主机名作为 NodeName I0714 22:05:12.684489 1567 initconfiguration.go:104] 检测到并使用 CRI 套接字:/var/run/dockershim.sock [飞行前] 运行飞行前检查 I0714 22:05:12.684592 1567 preflight.go:90] [preflight] 运行常规检查 I0714 22:05:12.684742 1567 checks.go:249] 验证目录 /etc/kubernetes/manifests 的存在性和空性 I0714 22:05:12.684758 1567 checks.go:286] 验证文件 /etc/kubernetes/kubelet.conf 的存在 I0714 22:05:12.684768 1567 checks.go:286] 验证文件 /etc/kubernetes/bootstrap-kubelet.conf 的存在 I0714 22:05:12.684776 1567 checks.go:102] 验证容器运行时 I0714 22:05:12.844191 1567 checks.go:128] 验证“docker”服务是否已启用并处于活动状态 [警告 IsDockerSystemdCheck]:检测到“cgroupfs”作为 Docker cgroup 驱动程序。推荐的驱动程序是“systemd”。请按照https://kubernetes.io/docs/setup/cri/ 的指南进行操作 I0714 22:05:13.064741 1567 checks.go:335] 验证文件 /proc/sys/net/bridge/bridge-nf-call-iptables 的内容 I0714 22:05:13.064849 1567 checks.go:335] 验证文件 /proc/sys/net/ipv4/ip_forward 的内容 I0714 22:05:13.064905 1567 checks.go:649] 验证交换是否启用 I0714 22:05:13.064948 1567 checks.go:376] 验证可执行 conntrack 的存在 I0714 22:05:13.064986 1567 checks.go:376] 验证可执行 ip 的存在 I0714 22:05:13.065010 1567 checks.go:376] 验证可执行 iptables 的存在 I0714 22:05:13.065033 1567 checks.go:376] 验证可执行挂载的存在 I0714 22:05:13.065057 1567 checks.go:376] 验证可执行 nsenter 的存在 I0714 22:05:13.065082 1567 checks.go:376] 验证可执行 ebtables 的存在 I0714 22:05:13.065104 1567 checks.go:376] 验证可执行 ethtool 的存在 I0714 22:05:13.065127 1567 checks.go:376] 验证可执行 socat 的存在 I0714 22:05:13.065149 1567 checks.go:376] 验证可执行 tc 的存在 I0714 22:05:13.065167 1567 checks.go:376] 验证是否存在可执行触摸 I0714 22:05:13.065199 1567 checks.go:520] 运行所有检查 I0714 22:05:13.262576 1567 checks.go:406] 使用 net.LookupHost 检查给定节点名称是否可访问 [警告主机名]:无法访问主机名“worker-node1” [警告主机名]:主机名“worker-node1”:在 192.168.18.2:53 上查找 worker-node1:没有这样的主机 I0714 22:05:14.338418 1567 checks.go:618] 验证 kubelet 版本 I0714 22:05:14.465098 1567 checks.go:128] 验证“kubelet”服务是否已启用并处于活动状态 I0714 22:05:14.485740 1567 checks.go:201] 验证端口 10250 的可用性 I0714 22:05:14.486043 1567 checks.go:286] 验证文件 /etc/kubernetes/pki/ca.crt 的存在 I0714 22:05:14.486068 1567 checks.go:432] 验证连接类型是通过代理还是直接 I0714 22:05:14.486125 1567 join.go:465] [飞行前] 发现集群信息 I0714 22:05:14.486182 1567 token.go:78] [discovery] 创建集群信息发现客户端,从“192.168.18.136:6443”请求信息 I0714 22:05:14.624417 1567 token.go:221] [discovery] cluster-info ConfigMap 尚不包含令牌 ID“cjxj26”的 JWS 签名,将重试 I0714 22:05:20.278283 1567 token.go:221] [发现] cluster-info ConfigMap 尚不包含令牌 ID“cjxj26”的 JWS 签名,将重试 I0714 22:05:26.320259 1567 token.go:221] [发现] cluster-info ConfigMap 尚不包含令牌 ID“cjxj26”的 JWS 签名,将重试
其实token是存在的,当我在master节点执行kubeadm token list时,可以显示:
[root@k8s-master ~]# kubeadm token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
cjxj26.ibwrtisae30ypis6 <forever> <never> authentication,signing <none> system:bootstrappers:kubeadm:default-node-token
并且令牌存在于 cluster-info configmap 中。
[root@k8s-master .kube]# kubectl -n kube-public get cm cluster-info -o yaml
apiVersion: v1
data:
jws-kubeconfig-cjxj26: eyJhbGciOiJIUzI1NiIsImtpZCI6ImNqeGoyNiJ9..RgWG119Onf5oZLgCS0MPfIjcshdhm81bUz_mTq1Av54
kubeconfig: |
apiVersion: v1
clusters:
- cluster:
以前有人遇到过这种错误吗?我尝试在google中搜索解决方案,很多人说重新生成令牌,但它对我不起作用。
【问题讨论】:
-
还是不行,谢谢你的帖子。
-
集群信息中的令牌在哪里?
-
@EvenChen 我发布了一个答案,请查看,如果正确,请接受
标签: kubernetes