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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

结论

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

问题表现:

新创建的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自动更新。
我们手动删除了路由,然后刷新路由表,发现路由很快被加回来了。
然后去查看节点详情,发现节点上的污点已经去掉了;
再调度下业务应用,发现业务应用可以正常调度上去了。
到此,问题解决。

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
29天前
|
缓存 Kubernetes Docker
容器服务ACK常见问题之容器服务ACK ingress websocket配置失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
18天前
|
Kubernetes 容器
k8s容器时间与服务器时间不一致问题
k8s容器时间与服务器时间不一致问题
17 0
|
7天前
|
JSON Kubernetes Go
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
17 0
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
|
21天前
|
人工智能 监控 Serverless
如何基于ACK Serverless快速部署AI推理服务
通过上述步骤,可以在ACK Serverless上快速部署AI推理服务,实现高可用、弹性扩展的服务架构。
19 1
|
21天前
|
Kubernetes 网络协议 Docker
K8S核心插件-coredns服务
K8S核心插件-coredns服务
15 0
|
21天前
|
Kubernetes API 调度
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(水平扩展控制)
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(水平扩展控制)
45 0
|
29天前
|
Kubernetes SDN 微服务
微服务与 Kubernetes 容器云的边界
【2月更文挑战第30天】该文探讨了微服务与Kubernetes集群的关系,主要关注是否应跨多集群部署。理想的状况是每个微服务对应一个Kubernetes集群,配置和注册中心在同一集群内,以减少网络延迟。
|
29天前
|
存储 Kubernetes 监控
容器服务ACK常见问题之容器服务ACK启动时readiness告警如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
29天前
|
存储 监控 Kubernetes
容器服务ACK常见问题之cmonitor-agent容器一直没起来如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
29天前
|
存储 Kubernetes 监控
容器服务ACK常见问题之容器服务ACK worker节点选择不同地域失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版