一例容器服务kubernetes集群节点异常问题的解决
结论
上来先发结论,方面出现同样问题的同学解决问题:
问题表现:
新创建的ACK托管版集群节点上被加了污点( node.kubernetes.io/network-unavailable: Effect: NoSchedule )
问题原因:
VPC中每个路由表中可保有的自定义路由条目数量(vpc_quota_route_entrys_num)超过配额限制,被ACK监测到从而给部分集群节点添加了污点标记
解决方法:
1.申请增加vpc_quota_route_entrys_num
- 2.手动删除对应节点的路由让ccm自动更新(推荐)或移除节点重新加入
问题解决感受:
1.阿里云容器服务kubernetes版本一直在不断地迭代,发展的越来越好,尤其是托管版,对于没有kubernetes专业人才甚至连专业运维人员都确认的企业非常方便适用;当然,阿里云容器服务kubernetes并不完美,还是有一些小问题的。
2.阿里云的支持人员非常敬业,晚上快11点了,还在帮忙排查和解决问题。点个赞。
问题发现和处理过程
下面是问题发现和处理过程,有兴趣或者需要了解详情的同学可以参考下:
近期,因业务需要,在测试环境新搭建了几个阿里云容器服务kubernetes托管版。
原本的#搭建过程非常顺利。在原有VPC网络中新建交换机、配置SNAT路由、创建新集群、指定了Pod网络CIDR和Service CIDR、指定使用新的ECS、配置日志服务等,点击创建集群,过个10来分钟,集群就创建好了。
然后取KubeConfig配置在发布系统中开始发布业务应用。
发布了几个应用之后,问题开始显露出来了。这个测试集群虽然只有几个节点,但也没道理应用一直都只往一个节点上部署啊。
仔细一检查,发现其他几个节点上都有污点。
再仔细一看,发现是创建集群时添加路由失败了。
然后去VPC控制台下检查路由,发现路由是存在的。
跟ACK支持同学确认,怀疑是创建时路由配额满了,导致ACK给节点标记了污点。
至于为啥路由是存在的,我怀疑是ACK有特殊权限,虽然路由满了,但是依然可以成功添加路由;同时,ACK仍然记录了此处路由数的限制问题,而在节点上标记了污点(纯粹合理猜想,因为复现成本较高,所以没有继续排查这方面的原因了)。
找到原因,就可以开始解决了。
首先,在配额管理中申请增加配额。
配额增加后,再查看路由表,没发现变化;查看节点详情,也没有变化,污点依然在,依然没有应用可以调度过去。
那么,试试手动去掉污点应该可以吧。
命令是执行成功了,但不管是describe node还是阿里云控制台上,污点依然在。
试了试调度,这时候有应用可以调度上去了。
好吧,看来是有些地方不太一致啊!
这时候,ACK支持的同学说,可以后台重启下ccm(cloud-controller-manager),ccm会自动检查路由表并更新状态。
那么,我们就重启下吧。
重启之后,发现节点上的污点标记依然在。
这时候,我试了试把节点从集群中移除然后重新加入,发现污点没有了,节点状态完全正常了。
不过,移除节点再加入的方式比较重,集群处理起来也很慢。
这时候,ACK支持的同学建议把路由手动删除来触发CCM自动更新。
我们手动删除了路由,然后刷新路由表,发现路由很快被加回来了。
然后去查看节点详情,发现节点上的污点已经去掉了;
再调度下业务应用,发现业务应用可以正常调度上去了。
到此,问题解决。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Novel 1.4.1 发布,修复 bug,新增七牛云存储
Novel v1.4.1 已发布,更新日志: 添加代码规范配置eslint 添加七牛云文件存储实现 修复界面热更新界面白屏问题 修复打包时uglifyjs-webpack-plugin插件对es6代码报错问题 更新fastjson到1.2.68,安全加固 更新springboot到2.2.6 其他优化 Novel 简介 一直想做一款后台管理系统,看了很多优秀的开源项目,从中发现了若依开源框架,从她出现以来就一直关注,但发现其中的功能太过强大,部分功能也不太适合自己,并且自己也一直想要动手学习一下若依的强大之处,便有了自己现在的novel。 它可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。 在线体验 后端项目地址:Novel-api 前端项目地址:Novel-vue 演示地址:http://cnovel.club 演示图 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 部门管理:配置系统...
- 下一篇
MySQL:互联网公司常用分库分表方案汇总
来源:cnblogs.com/littlecharacter/p/9342129.html 一、数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。 1、IO瓶颈 第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。 第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 -> 分库。 2、CPU瓶颈 第一种:SQL问题,如SQL中包含join,group by,order by,非索引字段条件查询等,增加CPU运算的操作 -> SQL优化,建立合适的索引,在业务Service层进行业
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Hadoop3单机部署,实现最简伪集群
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker快速安装Oracle11G,搭建oracle11g学习环境