久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么解決go中的notready問題

179次閱讀
沒有評論

共計 6161 個字符,預計需要花費 16 分鐘才能閱讀完成。

本篇內容主要講解“怎么解決 go 中的 notready 問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“怎么解決 go 中的 notready 問題”吧!

環境:

[root@k8s-01 ing]# kubectl version
Server 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 node
NAME STATUS ROLES AGE VERSION
k8s-01 Ready control-plane,master 18d v1.21.0
k8s-02 Ready worker 18d v1.21.0
k8s-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 也故障轉移了。

怎么解決 go 中的 notready 問題

describe 如下:

怎么解決 go 中的 notready 問題

進行抓 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.Obje
ctMeta{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] END
May 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.Ser
vice: 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] END
May 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.C
SIDriver: 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 obj
ect 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 停止時間:

怎么解決 go 中的 notready 問題

同時根據 messages 里面的日志開始報錯時間 和 pod 停止時間一致,所以排查當時時間點做了什么操作,排查 恢復即可!

4、萬能解決方案

重啟大法:

重啟節點、重啟 kubelet 無效!

解決方案

找到時間點的歷史命令,做了 externalIp 操作,并且和 k8s-02 的 ip 一致,刪除 externalIp 網絡恢復,節點 ready!

== 將 ipvs 換成 iptables 就可以正常使用 externalIp!==

到此,相信大家對“怎么解決 go 中的 notready 問題”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計6161字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 宁陵县| 平昌县| 汶川县| 长武县| 保康县| 旌德县| 阿拉尔市| 安平县| 中卫市| 乌拉特中旗| 苍梧县| 策勒县| 响水县| 陆川县| 晋城| 汝城县| 敖汉旗| 宝山区| 河津市| 通辽市| 无锡市| 和龙市| 门源| 砀山县| 察隅县| 金平| 大洼县| 江孜县| 齐齐哈尔市| 林州市| 新闻| 来宾市| 兰坪| 云林县| 福贡县| 兴隆县| 娄烦县| 通江县| 拜泉县| 宜宾县| 大新县|