[k8s] 重新加入master节点
默认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节点相关推荐
- k8s 给worker/master节点打标签(角色标签)
kubectl label node node4 node-role.kubernetes.io/worker=worker kubectl label node node5 node-role.ku ...
- k8s集群-master节点迁移
1,在新机器上安装k8s master ,执行好kubelet init 2, 将旧mtaser 的 /var/lib/etcd/ /var/lib/kubelet /etc/kubernetes ...
- K8S集群Master高可用实践
本文将在前文基础上介绍k8s集群的高可用实践,一般来讲,k8s集群高可用主要包含以下几个内容: 1.etcd集群高可用 2.集群dns服务高可用 3.kube-apiserver.kube-contr ...
- 【kubernetes系列】master节点部署Pod处于Pending状态
目录 一.绪论 二.情景再现 三.解决方案 一.绪论 产生问题的原因是master节点部署Pod,导致无法启动: 问题描述: Warning FailedScheduling 40s (x28 ove ...
- k8s 去除master节点污点NoSchedule,添加master节点 尽量不调度
k8s 去除master节点(k8s-master)污点NoSchedule,添加master节点 尽量不调度 PreferNoSchedule标签 #添加 尽量不调度 PreferNoSchedul ...
- 搭建K8s集群(kubeadm方式)-部署master节点
安装Docker/kubeadm/kubelet 所有节点安装Docker/kubeadm/kubelet ,Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker 安装D ...
- K8S——单master节点和基于单master节点的双master节点二进制部署(本机实验,防止卡顿,所以多master就不做3台了)
K8S--单master节点和基于单master节点的双master节点二进制部署 一.准备 二.ETCD集群 1.master节点 2.node节点 三.Flannel网络部署 四.测试容器间互通 ...
- k8s ready 不调度_【零基础学云计算】k8s部署---master节点组件部署(三)
kube-APIserver组件介绍 kube-APIserver提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中 ...
- master节点重置后添加node报错_超强教程!在树莓派上构建多节点K8S集群!
在很长一段时间里,我对于在树莓派上搭建Kubernetes集群极为感兴趣.在网络上找到一些教程并且跟着实操,我已经能够将Kubernetes安装在树莓派上,并在三个Pi集群中工作.然而,在master ...
最新文章
- 2021-2027年中国玩具行业市场研究及前瞻分析报告
- 汇编:ret以及retf指令
- PCL:关于pcd数据显示乱码
- MySQL 命令大全 - 命令详解
- IOS正则表达式的用法简介
- Detection of Extraterrestrial KMP匹配 重复k次子串 好题
- exfat最佳单元大小_双动圈四喇叭单元的头戴式耳机,DACOM HF002上手体验
- java link_Java Link类代码示例
- source 1.5 中不支持 diamond 运算符
- win10让一个绿色软件开机启动
- 黑科技抗疫,Python 开发者大集结!
- Python基于 ImageAI 模块实践 idenprof数据集识别预测分析
- 百度之星程序设计大赛
- MAX6299MTT在CPLD上的应用
- How to read Ext4 in Windows 10
- 报警触发音频和音频素材网址
- C语言实现简单打字游戏
- LaTeX 嵌入MATLAB 绘图的字体
- iOS截屏后仿今日头条实现一键分享
- Python数据可视化 - 直方图hist ≠ 条形图bar ( pandas与hist快速作图 )
热门文章
- TM:宿主-细菌界面的MicroRNA:宿主防御或细菌攻击
- R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(双分类变量分组可视化、颜色自定义、添加箱图)实战(dot plot)
- 使用Python批量删除windows下特定目录的N天前的旧文件实战:Windows下批量删除旧文件、清除缓存文件、解救C盘、拒绝C盘爆炸
- R语言复相关或者多重相关性系数计算实战:Multiple Correlation Coefficient
- R二项分布检验:双尾二项检验(Two-tailed Binomial Test)、左尾二项检验(Left-tailed Binomial Test)、右尾二项检验
- python 比较矩阵对应位置元素大小,比较矩阵的两个元素并在不同位置填充相对值...
- 最小二乘法MSE 梯度下降法
- Evaluation and Validation of AssemblingCorrected PacBio Long Reads for MicrobialGenome Completion
- 基于Java的webapp_几乎所有基于Java的web app都需要Model 2 (part II) (转)
- 内控体系建设五步骤_进一步完善环境保护标准体系建设 ——《国家环境保护标准“十三五”发展规划》解读...