默认token的有效期为24小时,当过期之后,该token就不可用了,
如果后续有nodes节点加入,解决方法如下:

重新生成新的token

kubeadm token create
[root@k8s-master ~]# kubeadm token create
0w3a92.ijgba9ia0e3scicg
[root@k8s-master ~]# kubeadm token list
TOKEN                     TTL       EXPIRES                     USAGES                   DESCRIPTION                                                EXTRA GROUPS
0w3a92.ijgba9ia0e3scicg   23h       2019-09-08T22:02:40+08:00   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token
t0ehj8.k4ef3gq0icr3etl0   22h       2019-09-08T20:58:34+08:00   authentication,signing   The default bootstrap token generated by 'kubeadm init'.   system:bootstrappers:kubeadm:default-node-token
[root@k8s-master ~]#

获取ca证书sha256编码hash值

[root@k8s-master ~]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
ce07a7f5b259961884c55e3ff8784b1eda6f8b5931e6fa2ab0b30b6a4234c09a

–token:用于Master验证Node身份。
要想集群首次引导启动时,支持bootstrap-token验证,APIServer需要开启下面的配置选项:
  --enable-bootstrap-token-auth=true

 kubectl get secret -n kube-system|grep bootstrap-token
bootstrap-token-nh819o                           bootstrap.kubernetes.io/token         7         2d

nh819o是token的id。pzcpohatm7p3a5cm是secret。
当kubeadm join访问APIServer,会在请求的header中携带这一token。APIServer会根据token进行身份验证。
API会查询是否有bootstrap-token的前缀的secret对象。
我们可以查看secret对象的内容。

kubectl get secret/bootstrap-token-nh819o -n kube-system -o yamlapiVersion: v1
data:auth-extra-groups: c3lzdGVtOmJvb3RzdHJhcHBlcnM6a3ViZWFkbTpkZWZhdWx0LW5vZGUtdG9rZW4=description: VGhlIGRlZmF1bHQgYm9vdHN0cmFwIHRva2VuIGdlbmVyYXRlZCBieSAna3ViZWFkbSBpbml0Jy4=expiration: MjAxOS0wNi0yMFQxMToyNDoyOCswODowMA==token-id: bmg4MTlvtoken-secret: cHpjcG9oYXRtN3AzYTVjbQ==usage-bootstrap-authentication: dHJ1ZQ==usage-bootstrap-signing: dHJ1ZQ==
kind: Secret
metadata:creationTimestamp: 2019-06-19T03:24:28Zname: bootstrap-token-nh819onamespace: kube-systemresourceVersion: "160"selfLink: /api/v1/namespaces/kube-system/secrets/bootstrap-token-nh819ouid: bea32cfa-9241-11e9-a613-52540095a842
type: bootstrap.kubernetes.io/token

对token-secret进行解码:

echo cHpjcG9oYXRtN3AzYTVjbQ==|base64 -d
pzcpohatm7p3a5cm

这个与token参数的secret值一致。

节点加入集群

[root@k8s-node01 ~]# kubeadm join --token aa78f6.8b4cafc8ed26c34f --discovery-token-ca-cert-hash sha256:0fd95a9bc67a7bf0ef42da968a0d55d92e52898ec37c971bd77ee501d845b538 192.168.73.138:6443 --skip-preflight-check=true

–discovery-token-ca-cert-hash:用于Node验证master身份。
执行join时,API Server会下发ca.crt,这个证书会被node存放在/etc/kubernetes/pki目录下。
然后kubeadm join再用ca设置公钥证书的hash值,与discovery-token-ca-cert-hash的值进行比对。

k8s执行 kubeadm join 加入node节点超时,报错[kubelet-check] Initial timeout of 40s passed.

kubeadm join 172.28.18.69:6443 --token abcdef.0123456789abcdef     --discovery-token-ca-cert-hash sha256:6010baa60fc234e60cb353a54b4179afd3205cd6b4fc15f415117a77b6d8ac07
W0109 18:03:24.343831   16537 join.go:346] [preflight] WARNING: JoinControlPane.controlPlane settings will be ignored when control-plane flag is not set.
[preflight] Running pre-flight checks
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
[kubelet-start] Downloading configuration for the kubelet from the "kubelet-config-1.18" ConfigMap in the kube-system namespace
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...
[kubelet-check] Initial timeout of 40s passed.
error execution phase kubelet-start: error uploading crisocket: timed out waiting for the condition
To see the stack trace of this error execute with --v=5 or higher

显示超时,加入节点失败

node节点执行

kubeadm reset -f

再执行加入

kubeadm join 172.28.18.69:6443 --token abcdef.0123456789abcdef     --discovery-token-ca-cert-hash sha256:6010baa60fc234e60cb353a54b4179afd3205cd6b4fc15f415117a77b6d8ac07

[k8s] 重新加入master节点相关推荐

  1. k8s 给worker/master节点打标签(角色标签)

    kubectl label node node4 node-role.kubernetes.io/worker=worker kubectl label node node5 node-role.ku ...

  2. k8s集群-master节点迁移

    1,在新机器上安装k8s master ,执行好kubelet init 2, 将旧mtaser 的 /var/lib/etcd/ /var/lib/kubelet  /etc/kubernetes ...

  3. K8S集群Master高可用实践

    本文将在前文基础上介绍k8s集群的高可用实践,一般来讲,k8s集群高可用主要包含以下几个内容: 1.etcd集群高可用 2.集群dns服务高可用 3.kube-apiserver.kube-contr ...

  4. 【kubernetes系列】master节点部署Pod处于Pending状态

    目录 一.绪论 二.情景再现 三.解决方案 一.绪论 产生问题的原因是master节点部署Pod,导致无法启动: 问题描述: Warning FailedScheduling 40s (x28 ove ...

  5. k8s 去除master节点污点NoSchedule,添加master节点 尽量不调度

    k8s 去除master节点(k8s-master)污点NoSchedule,添加master节点 尽量不调度 PreferNoSchedule标签 #添加 尽量不调度 PreferNoSchedul ...

  6. 搭建K8s集群(kubeadm方式)-部署master节点

    安装Docker/kubeadm/kubelet 所有节点安装Docker/kubeadm/kubelet ,Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker 安装D ...

  7. K8S——单master节点和基于单master节点的双master节点二进制部署(本机实验,防止卡顿,所以多master就不做3台了)

    K8S--单master节点和基于单master节点的双master节点二进制部署 一.准备 二.ETCD集群 1.master节点 2.node节点 三.Flannel网络部署 四.测试容器间互通 ...

  8. k8s ready 不调度_【零基础学云计算】k8s部署---master节点组件部署(三)

    kube-APIserver组件介绍 kube-APIserver提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中 ...

  9. master节点重置后添加node报错_超强教程!在树莓派上构建多节点K8S集群!

    在很长一段时间里,我对于在树莓派上搭建Kubernetes集群极为感兴趣.在网络上找到一些教程并且跟着实操,我已经能够将Kubernetes安装在树莓派上,并在三个Pi集群中工作.然而,在master ...

最新文章

  1. 2021-2027年中国玩具行业市场研究及前瞻分析报告
  2. 汇编:ret以及retf指令
  3. PCL:关于pcd数据显示乱码
  4. MySQL 命令大全 - 命令详解
  5. IOS正则表达式的用法简介
  6. Detection of Extraterrestrial KMP匹配 重复k次子串 好题
  7. exfat最佳单元大小_双动圈四喇叭单元的头戴式耳机,DACOM HF002上手体验
  8. java link_Java Link类代码示例
  9. source 1.5 中不支持 diamond 运算符
  10. win10让一个绿色软件开机启动
  11. 黑科技抗疫,Python 开发者大集结!
  12. Python基于 ImageAI 模块实践 idenprof数据集识别预测分析
  13. 百度之星程序设计大赛
  14. MAX6299MTT在CPLD上的应用
  15. How to read Ext4 in Windows 10
  16. 报警触发音频和音频素材网址
  17. C语言实现简单打字游戏
  18. LaTeX 嵌入MATLAB 绘图的字体
  19. iOS截屏后仿今日头条实现一键分享
  20. Python数据可视化 - 直方图hist ≠ 条形图bar ( pandas与hist快速作图 )

热门文章

  1. TM:宿主-细菌界面的MicroRNA:宿主防御或细菌攻击
  2. R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(双分类变量分组可视化、颜色自定义、添加箱图)实战(dot plot)
  3. 使用Python批量删除windows下特定目录的N天前的旧文件实战:Windows下批量删除旧文件、清除缓存文件、解救C盘、拒绝C盘爆炸
  4. R语言复相关或者多重相关性系数计算实战:Multiple Correlation Coefficient
  5. R二项分布检验:双尾二项检验(Two-tailed Binomial Test)、左尾二项检验(Left-tailed Binomial Test)、右尾二项检验
  6. python 比较矩阵对应位置元素大小,比较矩阵的两个元素并在不同位置填充相对值...
  7. 最小二乘法MSE 梯度下降法
  8. Evaluation and Validation of AssemblingCorrected PacBio Long Reads for MicrobialGenome Completion
  9. 基于Java的webapp_几乎所有基于Java的web app都需要Model 2 (part II) (转)
  10. 内控体系建设五步骤_进一步完善环境保护标准体系建设 ——《国家环境保护标准“十三五”发展规划》解读...