开发者社区> 塞外虎骉> 正文

一例容器服务kubernetes集群节点异常问题的解决

简介:
+关注继续查看

结论

上来先发结论,方面出现同样问题的同学解决问题:

问题表现:

新创建的ACK托管版集群节点上被加了污点( node.kubernetes.io/network-unavailable: Effect: NoSchedule )

问题原因:

VPC中每个路由表中可保有的自定义路由条目数量(vpc_quota_route_entrys_num)超过配额限制,被ACK监测到从而给部分集群节点添加了污点标记

解决方法:

1.申请增加vpc_quota_route_entrys_num

  1. 2.手动删除对应节点的路由让ccm自动更新(推荐)或移除节点重新加入

问题解决感受:

1.阿里云容器服务kubernetes版本一直在不断地迭代,发展的越来越好,尤其是托管版,对于没有kubernetes专业人才甚至连专业运维人员都确认的企业非常方便适用;当然,阿里云容器服务kubernetes并不完美,还是有一些小问题的。
2.阿里云的支持人员非常敬业,晚上快11点了,还在帮忙排查和解决问题。点个赞。

问题发现和处理过程

下面是问题发现和处理过程,有兴趣或者需要了解详情的同学可以参考下:

近期,因业务需要,在测试环境新搭建了几个阿里云容器服务kubernetes托管版。
原本的#搭建过程非常顺利。在原有VPC网络中新建交换机、配置SNAT路由、创建新集群、指定了Pod网络CIDR和Service CIDR、指定使用新的ECS、配置日志服务等,点击创建集群,过个10来分钟,集群就创建好了。
然后取KubeConfig配置在发布系统中开始发布业务应用。
发布了几个应用之后,问题开始显露出来了。这个测试集群虽然只有几个节点,但也没道理应用一直都只往一个节点上部署啊。
image
仔细一检查,发现其他几个节点上都有污点。
再仔细一看,发现是创建集群时添加路由失败了。
image
然后去VPC控制台下检查路由,发现路由是存在的。
跟ACK支持同学确认,怀疑是创建时路由配额满了,导致ACK给节点标记了污点。
至于为啥路由是存在的,我怀疑是ACK有特殊权限,虽然路由满了,但是依然可以成功添加路由;同时,ACK仍然记录了此处路由数的限制问题,而在节点上标记了污点(纯粹合理猜想,因为复现成本较高,所以没有继续排查这方面的原因了)。
找到原因,就可以开始解决了。
首先,在配额管理中申请增加配额。
配额增加后,再查看路由表,没发现变化;查看节点详情,也没有变化,污点依然在,依然没有应用可以调度过去。
那么,试试手动去掉污点应该可以吧。
image
命令是执行成功了,但不管是describe node还是阿里云控制台上,污点依然在。
试了试调度,这时候有应用可以调度上去了。
好吧,看来是有些地方不太一致啊!
这时候,ACK支持的同学说,可以后台重启下ccm(cloud-controller-manager),ccm会自动检查路由表并更新状态。
那么,我们就重启下吧。
重启之后,发现节点上的污点标记依然在。
这时候,我试了试把节点从集群中移除然后重新加入,发现污点没有了,节点状态完全正常了。
不过,移除节点再加入的方式比较重,集群处理起来也很慢。
这时候,ACK支持的同学建议把路由手动删除来触发CCM自动更新。
我们手动删除了路由,然后刷新路由表,发现路由很快被加回来了。
然后去查看节点详情,发现节点上的污点已经去掉了;
再调度下业务应用,发现业务应用可以正常调度上去了。
到此,问题解决。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Hystrix技术分享
在微服务架构中,一个请求需要调用多个服务是非常常见的。如客户端访问A服务,而A服务需要调用B服务,B服务需要调用C服务,由于网络原因或者自身的原因,如果B服务或者C服务不能及时响应,A服务将处于阻塞状态,直到B服务C服务响应。此时若有大量的请求涌入,容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,造成连锁反应,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。
5 0
万字速通单例模式
谈起单例模式,想必大家都不陌生,不仅在各种大厂的面试中频频出现,在实际的开发中,也应用广泛,如何设计一个优雅的单例模式,成为了重头戏。
5 0
从零开始学设计模式(十三):访问者模式(Visitor Pattern)
前面的几篇文章分别介绍了创建型设计模式和结构型设计模式,接下来的几篇文章将介绍行为型设计模式
4 0
零基础入门NLP - 新闻文本分类 方案整理
零基础入门NLP - 新闻文本分类 方案整理
4 0
Redis主从复制原理以及常见问题(2)
Redis主从复制原理以及常见问题
5 0
Kaggle新赛一览
Kaggle新赛一览
4 0
新上线比赛,赶快上车~
新上线比赛,赶快上车~
4 0
学习使用阿里云ECS服务器
通过阿里云的新手教程学会简便使用ECS云服务器
3 0
从零开始学设计模式(十七): 备忘录模式(Memento Pattern)
备忘录模式(Memento Pattern)又叫快照模式,它指的是在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。它是一种对象行为型模式。
3 0
面试问Redis集群,被虐的不行了......(1)
面试问Redis集群,被虐的不行了......
3 0
+关注
7
文章
13
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载