k8s踩坑记 - kubeadm join 之 token 失效

抛砖引玉

环境

  • centos 7 amd64 两台
  • kubernetes 1.10

伴随着k8s1.10版本的发布,前天先在一台机器上搭建了k8s单机版集群,即既是master,也是node,按照经验,将 kubeadm init 提示的 kubeadm join 记录下来,方便未来新增集群集工作节点(机器)时,可以直接复用,紧接着就部署dashboard、heapster、ElasticSearch、Redis、dotnet 微服务等等,一气呵成,集群状态良好,因为之前测试环境搞过k8s,呵呵 ...... 。过了两天公司购买的第二胎服务器到了,那么就顺其自然的在上面执行之前记录的 kubeadm join 脚本,结果如下:

看到这个提示信息,我完全100%地相信,node 已经加入集群,并且只要等一会儿,通过 kubectl get nodes 就可以看到 node is ready,嘿嘿 过一会儿,又过一会,再过一会儿 ...... ,可是

西天取经,历经九九八十一难

然后,开启重试模式,发扬程序员不掘不挠的传统精神:

  1. kubectl reset
  2. kubectl join ......
  3. kubectl get nodes

进入重试死循环N次,耐性真好,哈哈。明明提示 This node has joined the cluster ,为什么实际情况是这样呢,难道这就是理想和现实的差距,其实这就是 ,out了吧。我想了又想,看了又看,没有一点点错误、警告之类的信息,无从下手啊,肿么办呢,最后还是把关注点放在了kubelet(谁叫你是 node agent,肯定拿你开刀啊,呵呵)上,于是开始查看kuberlet的日志:

看到了吧

error: failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd" 原来这个小问题啊,哎。。。。。。,我又再一次相信了这个k8s的提示信息,然后开始修正bug了

信了你的邪哦,为什么 kubelet cgroup driverdocker cgroup driver 一模一样,刚刚,kubelet 日志里面不是。。。明明。。。却。。。,淡定,这可能是幻觉,好吧。到底什么是真的,什么是假的,能不能给一个准确的提示信息,既然也不是kubelet的问题,又是最新的版本,也没有资料可查,当下实在没辙了,那就去 kubernets#62776Issues吧,于是乎,就这样下班了。。。。

第二天,第一件事情就是查看昨天提的问题是否有人回答了,结果看到被一个印度阿三给关闭了

哎,和昨天预料的结果一眼,好像有点诸葛了吧,嘿嘿,那还是靠自己吧,又想了又想,看了又看,真的是没有一点点防备啊,期间检查了 kubeadmkubectlkubelet,也查看来了各种配置;也想过是不是master提前安装的一些东西影响了,因为以前都是 kubeadm init 后,然后就马上 ·kubeadm join;还想过是不是环境的问题,因为之前的测试环境一直是Ubuntu 16.4,现在的主机环境是 CentOS 7。本想着今天上午,搞不定,就按照测试环境的步骤,重来来过,然后,还是不肯放弃(天生就是当程序员的料子啊,就是头有点冷,呵呵),于是从另外的角度去思考,怀疑是不是记录的 'kube join token=.... ',有问题啊(之前为什么没怀疑,是因为我是直接复制 kubeadm init 打印出来的原生脚本,而且测试环境一点问题都没有。),于是开始顺藤摸瓜,排查第一个参数 token,执行命令 kubeadm token list

修成正果,立地成佛

真是抛开云雾见天明,不容易啊,众里寻她千百度,原来她在灯火阑珊处。。。。。哎,不去搞文学,可惜了,呵呵。 于是乎,通过 kubeadm create token 重新创建了一个 token,然后,重新执行 kubeadm join,再次查看 kubectl get nodes

成功了,终于成功了,这是搞 kubernetes 以来,踩的最迷糊的一次坑,最后自己回答了自己的 kubernets#62776 ,顺便也给kubernetes 提了一下建议,希望提示信息能够准确些,他们的一小步,就是我们的一大步啊。。。。。

普惠

默认情况下,通过 kubeadm create token 创建的 token ,过期时间是24小时,这就是为什么过了一天无法再次使用之前记录的 kube join 原生脚本的原因,也可以运行 kubeadm token create --ttl 0生成一个永不过期的 token,详情请参考:kubeadm-token,了解了原因才能够举一反三,带着思考学习k8s,才不会觉得乏味,希望把这个分享给大家,更希望把整个思考过程分享给大家,往往结果很简单,过程确如同西天取经,只要是程序员,都有同感吧。如果有什么疑问,或者想要交流的东西欢迎评论区留言,楼主会一一回复的哦。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑白安全

如何防范黑客人肉搜索

不要在网络上泄露自己的隐私 这里的隐私指的是自己的真实身份,例如我们在注册一些网站、论坛的ID时,会让你填写一些个人的真实情况,这时我们最好不要填写(通常在注册...

2872
来自专栏IT笔记

三分钟读懂TT猫分布式、微服务和集群之路

针对新手入门的普及,有过大型网站技术架构牛人路过,别耽误浪费了时间,阅读之前,请确保有一定的网络基础,熟练使用Linux,浏览大概需要3-5分钟的时间,结尾有彩...

32010
来自专栏安恒信息

盘点计算机遭受攻击的标志及补救措施

1.假冒杀毒消息    如果你收到假冒的反病毒警告信息,恶意软件已经利用未打补丁的软件(通常是JRE或一个Adobe产品)“占领”了你的系统。这些伪装的扫描会找...

4207
来自专栏FreeBuf

针对爱尔兰DDoS攻击的取证分析

在过去一段时间内,爱尔兰的许多在线服务和公共网络都遭受到了 DDoS 攻击。英国广播公司(BBC)最近的一篇文章[链接]就指出 2016 年 DDoS 攻击事件...

2737
来自专栏黑白安全

渗透测试中的攻与守

渗透测试(Penetration Test)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试能够直观...

1633
来自专栏安恒信息

恶意Word附件影响Windows和Office 微软提供临时修复方案

微软已经推出了标号为2896666的安全公告,主要针对伪装成一封电子邮件并要求打开一个特制的Word附件的潜在威胁。在正式的安全修复工作完成之前,...

2764
来自专栏知无涯

Ubuntu 15.10 中文桌面版/服务器正式版下载 - 华丽免费易于入门的 Linux 操作系统

60410
来自专栏小樱的经验随笔

网站渗透测试原理及详细过程

网站渗透测试原理及详细过程 零、前言 渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为。 这里我们提供的所有渗透测试方法均为(假设为)合法的评估...

7849
来自专栏FreeBuf

好莱坞特工必备:维基解密公开CIA用来关闭摄像头监控的工具Dumbo

在过去的 20 年里,我们看到成百上千的电影中,秘密间谍或银行抢劫者通过劫持监控摄像机,让监控录制停止或开始无限循环,随后秘密行动悄无声息地开始,不会留下任何痕...

3473
来自专栏即时通讯技术

解密“达达-京东到家”的订单即时派发技术原理和实践1、前言2、关于作者3、订单即时派发架构的演进5、订单派发方案的具体实现6、结语附录:更多相关技术文章

达达-京东到家作为优秀的即时配送物流平台,实现了多渠道的订单配送,包括外卖平台的餐饮订单、新零售的生鲜订单、知名商户的优质订单等。为了提升平台的用户粘性,我们需...

1152

扫码关注云+社区

领取腾讯云代金券