千家信息网

怎么解决go中的notready问题

发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,本篇内容主要讲解"怎么解决go中的notready问题",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么解决go中的notready问题"吧!环境:[ro
千家信息网最后更新 2024年11月17日怎么解决go中的notready问题

本篇内容主要讲解"怎么解决go中的notready问题",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么解决go中的notready问题"吧!

环境:

[root@k8s-01 ing]# kubectl versionServer Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:25:06Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"linux/amd64"}[root@k8s-01 ing]# kubectl version |grep server[root@k8s-01 ing]# kubectl get nodeNAME     STATUS   ROLES                  AGE   VERSIONk8s-01   Ready    control-plane,master   18d   v1.21.0k8s-02   Ready    worker                 18d   v1.21.0k8s-03   Ready    worker                 18d   v1.21.0

现象:

k8s-02节点处于notready状态,查看pod的terminating时间点,7h以前;查看messages日志,报错也是从7h以前开始的。

排查过程

1、检查网络连通性

并且该节点处于单通状态:master和其他节点可以ping通k8s-02机器,k8s-02不能ping通其他机器。

确实网络有问题,于是查看calico的pod状态 是ok的,calico-kube-controller也故障转移了。

describe如下:

进行抓k8s-02的icmp包,master接收到了 但不给回复:

tcpdump -i eth0 icmp and host 10.170.36.46

2、kubelet排查

  • 到这里网络排查 没有头绪,开始根据describe的内容查看kubelet并百度:

百度都是防火墙、关闭swap等等操作,但是我这里都没有……重启节点、重启kubelet都不行!

  • 查看日志messages:

May 11 21:27:58 k8s-02 kubelet: I0511 21:27:58.469919     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:27:59 k8s-02 kubelet: I0511 21:27:59.469278     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:00 k8s-02 kubelet: I0511 21:28:00.469261     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:00 k8s-02 kubelet: E0511 21:28:00.598812     651 event.go:273] Unable to write event: '&v1.Event{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"k8s-02.167e04da740613a2", GenerateName:"", Namespace:"default", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ClusterName:"", ManagedFields:[]v1.ManagedFieldsEntry(nil)}, InvolvedObject:v1.ObjectReference{Kind:"Node", Namespace:"", Name:"k8s-02", UID:"k8s-02", APIVersion:"", ResourceVersion:"", FieldPath:""}, Reason:"NodeHasSufficientPID", Message:"Node k8s-02 status is now: NodeHasSufficientPID", Source:v1.EventSource{Component:"kubelet", Host:"k8s-02"}, FirstTimestamp:v1.Time{Time:time.Time{wall:0xc01ebe130bad1ba2, ext:12673521163, loc:(*time.Location)(0x74ad9e0)}}, LastTimestamp:v1.Time{Time:time.Time{wall:0xc01ebe130bad1ba2, ext:12673521163, loc:(*time.Location)(0x74ad9e0)}}, Count:1, Type:"Normal", EventTime:v1.MicroTime{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, Series:(*v1.EventSeries)(nil), Action:"", Related:(*v1.ObjectReference)(nil), ReportingController:"", ReportingInstance:""}': 'Post "https://10.170.2.32:6443/api/v1/namespaces/default/events": dial tcp 10.170.2.32:6443: i/o timeout'(may retry after sleeping)May 11 21:28:01 k8s-02 kubelet: I0511 21:28:01.469790     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:02 k8s-02 kubelet: I0511 21:28:02.406629     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:02 k8s-02 kubelet: I0511 21:28:02.406669     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:02 k8s-02 kubelet: I0511 21:28:02.469338     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:03 k8s-02 kubelet: I0511 21:28:03.407443     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:03 k8s-02 kubelet: I0511 21:28:03.469928     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:03 k8s-02 kubelet: I0511 21:28:03.617223     651 trace.go:205] Trace[766683077]: "Reflector ListAndWatch" name:k8s.io/client-go/informers/factory.go:134 (11-May-2021 21:27:33.615) (total time: 30001ms):May 11 21:28:03 k8s-02 kubelet: Trace[766683077]: [30.001402015s] [30.001402015s] ENDMay 11 21:28:03 k8s-02 kubelet: E0511 21:28:03.617257     651 reflector.go:138] k8s.io/client-go/informers/factory.go:134: Failed to watch *v1.Service: failed to list *v1.Service: Get "https://10.170.2.32:6443/api/v1/services?limit=500&resourceVersion=0": dial tcp 10.170.2.32:6443: i/o timeoutMay 11 21:28:04 k8s-02 kubelet: I0511 21:28:04.407120     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:04 k8s-02 kubelet: I0511 21:28:04.469376     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:05 k8s-02 kubelet: I0511 21:28:05.407095     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:05 k8s-02 kubelet: I0511 21:28:05.469475     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:05 k8s-02 kubelet: I0511 21:28:05.769847     651 trace.go:205] Trace[347094812]: "Reflector ListAndWatch" name:k8s.io/client-go/informers/factory.go:134 (11-May-2021 21:27:35.768) (total time: 30000ms):May 11 21:28:05 k8s-02 kubelet: Trace[347094812]: [30.000987614s] [30.000987614s] ENDMay 11 21:28:05 k8s-02 kubelet: E0511 21:28:05.769907     651 reflector.go:138] k8s.io/client-go/informers/factory.go:134: Failed to watch *v1.CSIDriver: failed to list *v1.CSIDriver: Get "https://10.170.2.32:6443/apis/storage.k8s.io/v1/csidrivers?limit=500&resourceVersion=0": dial tcp 10.170.2.32:6443: i/o timeoutMay 11 21:28:06 k8s-02 kubelet: I0511 21:28:06.407171     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:06 k8s-02 kubelet: I0511 21:28:06.469821     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:06 k8s-02 kubelet: I0511 21:28:06.469863     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:06 k8s-02 kubelet: E0511 21:28:06.469887     651 kubelet.go:2298] "Error getting node" err="nodes have not yet been read at least once, cannot construct node object"May 11 21:28:06 k8s-02 kubelet: I0511 21:28:06.570550     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:06 k8s-02 kubelet: I0511 21:28:06.570599     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:07 k8s-02 kubelet: I0511 21:28:07.407416     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:07 k8s-02 kubelet: I0511 21:28:07.571241     651 kubelet.go:461] "Kubelet nodes not sync"May 11 21:28:08 k8s-02 kubelet: I0511 21:28:08.407052     651 kubelet.go:461] "Kubelet nodes not sync"

日志也百度了,总之就是连不上master……

3、根据时间点排查

查看pod停止时间:

同时根据messages里面的日志开始报错时间 和pod停止时间一致,所以排查当时时间点做了什么操作 ,排查 恢复即可!

4、万能解决方案

重启大法:

重启节点、重启kubelet 无效!

解决方案

找到时间点的历史命令,做了externalIp操作,并且和k8s-02的ip一致,删除externalIp 网络恢复,节点ready!

==将ipvs换成iptables就可以正常使用externalIp!==

到此,相信大家对"怎么解决go中的notready问题"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

时间 节点 问题 日志 网络 内容 状态 一致 方案 机器 解决方案 学习 不行 实用 更深 兴趣 历史 同时 命令 大法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 微信使用代理服务器无法视频链接 工行金融信用信息基础数据库 广州定制软件开发中心 服务器主板电池怎么扣下来 数据库中date_part 日本大学院网络安全 贷款主要看报表啥数据库 新乡筋斗云网络技术有限公司 bpms数据库数据类型 乡镇网络安全应急处置预案 阿纳克洛斯服务器部落职业比例 幼儿园网络安全话语 led显示屏软件开发 华为网络服务器设置 数据库中实体之间的联系表为 qq怎么将文件上传服务器 云计算是一种全新的网络技术 自主可控软件开发价目表 儿童手机软件开发 网络技术三级可以带计算器吗 潜在的网络安全威胁因素 通信技术融合信息技术和网络技术 2021网络安全问卷调查 宣传普及网络安全 计算机网络技术的英文怎么写 gis地理信息数据库 专科生报网络技术好就业吗 网络安全包含哪些产品内容 dell服务器进安全系统 德州手机软件开发服务公司
0