k8s节点NotReady问题处理

我把三台虚拟机重启,发现2个节点一直处于 NotReady 状态,便去查找问题,到最后是因为子节点的 kubelet 的状态异常了,restart 一下就好了,下面转一下解决的思路


某天晚上,针对 K8S 环境做了一次压测,50路并发实施,早上起来看监控,发现昨晚8点之后,系统好像都宕掉了,一看 master 节点和一个 node 节点状态变成了 not ready,主要定位手段如下:

1. 查看 master kubelet 状态

systemctl status kubelet 状态正常

2. 查看 master kube-proxy 状态

systemctl status kube-proxy 状态正常

3. 查看 master kube-apiserver 状态

systemctl status kube-apiserver 状态正常

4. 查看 master kube-scheduler 状态

systemctl status kube-scheduler 状态正常

5. 查看 master etcd 状态

systemctl status etcd 状态正常

6. 查看 flannel 状态

在 kubernetes-dashboard 上看到 flannel 挂掉了,查看日志如下

<code>Failed 

create

pod sandbox: rpc

error

: code =

Unknown

desc

=

failed

to

start

sandbox

container

for

pod

"kube-flannel-ds-amd64-sc7sr"

:

Error

response

from

daemon: OCI runtime

create

failed

: container_linux.go:

348

:

starting

container

process caused

"process_linux.go:301: running exec setns process for init caused "

signal: broken

pipe

\

""

:

unknown

/<code>

而这个问题,通过分析应该是 flannel 在网络比较大的情况下,内存资源不足了,所以修改 flannel的配置,将内存扩大即可。

<code>

"resources"

: {

"limits"

: {

"cpu"

:

"300m"

,

"memory"

:

"200Mi"

},

"requests"

: {

"cpu"

:

"300m"

,

"memory"

:

"200Mi"

} },/<code>

修改完成之后,需要重启docker,在删除原来的 flannel pod,这样问题就解决拉

出处:http://dwz.date/c4NQ


分享到:


相關文章: