我在部署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部署啦!文章来源:https://www.toymoban.com/news/detail-678794.html
部署k8s集群挺多坑的,不过都见惯不惯了,找报错信息看日志见招拆招哈哈哈哈。文章来源地址https://www.toymoban.com/news/detail-678794.html
到了这里,关于k8s部署解成功解决node节点一直处于NotReady状态的问题,报错failed to load Kubelet config file /var/lib/kubelet/config.yaml的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!