kubernetes-二进制部署的时候,遇到kubelet启动失败,服务报错Unit kubelet.service entered failed state.

博主最近在学习二进制部署k8s,在node上部署kubelet组件时遇到错误。

作为一个新手,遇见这个问题慌得一批,完全不知道如何下手,百度也看不懂。

这个分享一下解决得思路:

 

一、检查node节点,kubelet得bin命令是否拷贝

用cp 命令把二进制包里面得命令复制到你kubernetes的工作目录

 

 

 

二、检查node节点,ssl证书是否拷贝,跟主节点是否一致

在master节点生成了证书后,记得复制过去

 

 

 

三、对比跟node和master的bootstrap.kubeconfig是否一致,不一致复制master或者重新生成

 

 

 

补充:master重新生成bootstrap.kubeconfig命令

复制代码
先查看之前的token.csv和kube-apiserver.conf,拿到两个数据

TOKEN:4fb823f13d1d21be5991b9e3a582718c KUBE_APISERVER
="https://192.168.1.130:6443" # 生成 kubelet bootstrap kubeconfig 配置文件 kubectl config set-cluster kubernetes \ --certificate-authority=/opt/kubernetes/ssl/ca.pem \ --embed-certs=true \ --server=https://192.168.1.130:6443 \ --kubeconfig=bootstrap.kubeconfig kubectl config set-credentials "kubelet-bootstrap" \ --token=4fb823f13d1d21be5991b9e3a582718c \ --kubeconfig=bootstrap.kubeconfig kubectl config set-context default \ --cluster=kubernetes \ --user="kubelet-bootstrap" \ --kubeconfig=bootstrap.kubeconfig kubectl config use-context default --kubeconfig=bootstrap.kubeconfig # 拷贝到配置文件路径 scp bootstrap.kubeconfig root@paas2:/opt/kubernetes/cfg/
复制代码

 

四、是不是没有授权 kubelet-bootstrap 用户允许请求证书

这一部非常坑,有时候自己没看清一些前辈的文档,忘了这步

在master执行一下命令,执行后在node上重启kubelet

#如果启动报错,在master节点授权boot-startboop
kubectl create clusterrolebinding kubelet-bootstrap \
--clusterrole=system:node-bootstrapper \
--user=kubelet-bootstrap

node重启

systemctl start kubelet
systemctl enable kubelet
systemctl status kubelet

 

五、以上都不行请查看日志

 journalctl -xefu kubelet

 

posted @   李宗盛  阅读(6556)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
历史上的今天:
2020-01-20 Tomcat windows服务器配置多个Tomcat
点击右上角即可分享
微信分享提示