我有一个主节点,现在我想从工作节点加入主节点,我生成了一个永不过期的令牌并执行加入命令,但是我收到了此错误:
[root@worker-node1 ~]# kubeadm join 192.168.18.136:6443 --token cjxj26.ibwrtisae30ypis6 \
Run Code Online (Sandbox Code Playgroud)
--discovery-token-ca-cert-hash sha256:2659517cbbb2623b3d93408a4ab50f3592a3d021adf25d25c8050dd44345eadd [预检] 运行预检检查 [警告 IsDockerSystemdCheck]: 检测到“cgroupfs”作为 Docker cgroup 驱动程序。推荐的驱动程序是“systemd”。请按照https://kubernetes.io/docs/setup/cri/上的指南进行操作 [警告主机名]:无法访问主机名“worker-node1”[警告主机名]:主机名“worker-node1”:查找worker-node1在 192.168.18.2:53 上:没有这样的主机 ^C [root@worker-node1 ~]# kubeadm join 192.168.18.136:6443 --token cjxj26.ibwrtisae30ypis6 --discovery-token-ca-cert-hash sha256:2659517cbbb2623b3d93408a 4ab50f3592a3d021adf25d25c8050dd44345eadd -- v=5 I0714 22:05:12.684249 1567 join.go:395] [preflight] 发现 NodeName 为空;使用操作系统主机名作为 NodeName I0714 22:05:12.684489 1567 initconfiguration.go:104] 检测到并使用 CRI 套接字:/var/run/dockershim.sock [preflight] 运行飞行前检查 I0714 22:05:12.684592 1567 preflight.go :90] [preflight] 运行一般检查 I0714 22:05:12.684742 1567checks.go:249] 验证目录 /etc/kubernetes/manifests 的存在和空性 I0714 22:05:12.684758 1567checks.go:286] 验证文件 /etc/kubernetes/kubelet.conf 的存在 I0714 22:05:12.684768 1567checks.go:286] 验证文件 /etc/kubernetes/bootstrap-kubelet.conf 的存在 I0714 22:05:12.684776 1567checks.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 1567checks.go:335]验证文件/proc/sys/net/bridge/bridge-nf-call-iptables的内容 I0714 22:05:13.064849 1567checks.go:335]验证内容文件 /proc/sys/net/ipv4/ip_forward I0714 22:05:13.064905 1567Checks.go:649] 验证是否启用交换 I0714 22:05:13.064948 1567Checks.go:376] 验证可执行文件是否存在conntrack I0714 22:05:13.064986 1567checks.go:376]验证可执行ip是否存在 I0714 22:05:13.065010 1567checks.go:376]验证可执行iptables是否存在 I0714 22:05:13.065033 1567checks.go: 376]验证可执行文件mount的存在 I0714 22:05:13.065057 1567checks.go:376]验证可执行文件nsenter的存在 I0714 22:05:13.065082 1567checks.go:376]验证可执行文件ebtables的存在 I071422:05 :13.065104 1567checks.go:376]验证可执行的ethtool是否存在 I0714 22:05:13.065127 1567checks.go:376]验证可执行的socat是否存在 I0714 22:05:13.065149 1567checks.go:376]验证是否存在可执行 tc I0714 22:05:13.065167 1567checks.go:376] 验证可执行文件 touch 是否存在 I0714 22:05:13.065199 1567checks.go:520] 运行所有检查 I071422:05:13.262576 1567checks.go:406 ] 检查给定的节点名称是否可以使用 net.LookupHost 访问 [警告主机名]:无法访问主机名“worker-node1”[警告主机名]:主机名“worker-node1”:在 192.168.18.2:53 上查找worker-node1 :没有这样的主机 I0714 22:05:14.338418 1567checks.go:618] 验证 kubelet 版本 I0714 22:05:14.465098 1567checks.go:128] 验证“kubelet”服务是否已启用并处于活动状态 I0714 22:05:14.485740 1567checks.go:201]验证端口10250的可用性I0714 22:05:14.486043 1567checks.go:286]验证文件/etc/kubernetes/pki/ca.crt的存在I071422:05:14.4860681567checks.go :432] 验证连接类型是通过代理还是直接 I0714 22:05:14.486125 1567 join.go:465] [preflight] 发现集群信息 I0714 22:05:14.486182 1567 token.go:78] [discovery] 已创建cluster-info 发现客户端,从“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] [discovery] cluster-info ConfigMap 尚未包含令牌 ID“cjxj26”的 JWS 签名,将重试 I0714 22:05:26.320259 1567 token .go:221] [发现] cluster-info ConfigMap 尚未包含令牌 ID“cjxj26”的 JWS 签名,将重试
实际上,令牌是存在的,当我在主节点中执行 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
Run Code Online (Sandbox Code Playgroud)
并且该令牌存在于 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:
Run Code Online (Sandbox Code Playgroud)
以前有人遇到过这种错误吗?我尝试在google中搜索解决方案,很多人说重新生成令牌,但这对我不起作用。
也许您的问题是令牌超时。
如果你想确定这个问题是否存在,你可以运行以下命令
kubeadm token list
Run Code Online (Sandbox Code Playgroud)
如果上面的命令没有显示任何内容,则您的问题是令牌超时。
为了解决您的问题,您可以执行以下操作
kubeadm token create
Run Code Online (Sandbox Code Playgroud)
如果你kubeadm token list
再次运行你可以看到下面的结果
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
70jkdh.gx9oiqd7jno56nou 23h 2021-10-25T19:52:59Z authentication,signing <none> system:bootstrappers:kubeadm:default-node-token
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,该令牌具有 TTL,因此 23 小时后该令牌就过期了。
因此,在 TTL 到来之前,您可以使用上述命令的结果令牌加入另一个节点。
归档时间: |
|
查看次数: |
5726 次 |
最近记录: |