k8s部署解成功解决node节点一直处于NotReady状态的问题,报错failed to load Kubelet config file /var/lib/kubelet/config.yaml

文章讲述了在部署Kubernetes集群时遇到host1节点状态为NotReady的问题,通过查看journalctl日志发现是kubelet配置下载失败。原因是缺少kubeadminit步骤。解决方案是更新token并重新加入集群。在确认节点状态变为Ready后,部署了nginx示例应用,同时提到了CNI网络配置,特别是flannel的相关文件检查和创建。最后成功测试了Kubernetes集群的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在部署k8s的时候host1节点一直显示NotReady
在这里插入图片描述
出现报错问题,直接经典看日志解决问题思路哈哈哈
看日志找报错点,找问题解决问题,思路一定要清晰。

在host1节点中查看报错信息,代码:

journalctl -f -u kubelet.service 

在这里插入图片描述
由日志信息可知,报错原因是不能从/var/llib/kubelet/config.yaml下载到kubelet的配置。

错误原因估计是我之前没有做 kubeadm init就运行了systemctl start kubelet。
我们可以尝试将token更新,重新生成token,代码如下:

kubeadm token create --print-join-command

复制输出的内容,分别在hsot中运行,如下:
在这里插入图片描述

两个节点重新加入集群之后查看host1节点状态,

systemctl status kubelet

在这里插入图片描述
我们再来看看master上面的集群信息发现已经变为ready

kubectl get nodes

在这里插入图片描述

集群都没啥问题之后我们就可以测试Kubernetes,来试试部署nginx

在主节点上运行:

kubectl create deployment nginx --image=nginx #创建一个httpd服务测试

在这里插入图片描述

kubectl expose deployment nginx --port=80 --type=NodePort 

#端口就写80,如果你写其他的可能防火墙拦截了
在这里插入图片描述

kubectl get svc,pod   #对外暴露端口

在这里插入图片描述
这里要注意一个点,就是节点状态由NotReady状态变为Ready状态时候,要检查各个节点,包括主节点是否有/run/flannel/subnet.env,文件内容如下:
FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true

如果缺少相关文件
则需要我们创建cni网络相关配置文件:

mkdir -p /etc/cni/net.d/
cat <<EOF> /etc/cni/net.d/10-flannel.conf
{"name":"cbr0","type":"flannel","delegate": {"isDefaultGateway": true}}
EOF
mkdir /usr/share/oci-umount/oci-umount.d -p
mkdir /run/flannel/
cat <<EOF> /run/flannel/subnet.env
FLANNEL_NETWORK=10.199.0.0/16
FLANNEL_SUBNET=10.199.1.0/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true
EOF

确实这些文件也会在集群日志中报错:

cni config uninitialized
5月 06 12:44:06 master kubelet[48391]: W0506 12:44:06.599700   48391 cni.go:213] Unable to update cni config: No networks found in /etc/cni/net.d
5月 06 12:44:07 master kubelet[48391]: E0506 12:44:07.068343   48391 kubelet.go:2170] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready

在这里插入图片描述

Kubectl get nodes
在这里插入图片描述

浏览器网址输入
192.168.95.25:30722
在这里插入图片描述

或者输入CLUSTER-IP:
10.100.184.180
在这里插入图片描述

这样就成功测试Kubernetes,完成nginx部署啦!

部署k8s集群挺多坑的,不过都见惯不惯了,找报错信息看日志见招拆招哈哈哈哈。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星川皆无恙

如果对您有所帮助,感谢您的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值