kube-controller-manager反复重启解决
背景
某环境,kube-controller-manager反复重启,尝试重建kube-controller-manager的pod,但是过一会问题复现。

如上图,kube-controller-manager反复重启了200多次了。
排查
1.通过kubectl logs -n kube-system kube-controller-manager-xxx查看kube-controller-manager日志,日志显示“failed to renew lease kube-system/kube-controller-manager: failed to tryAcquireOrRenew context deadline exceeded”

2.参考一次kube-controller-manager的bug导致的线上无法调度处理过程,通过kubectl get --raw /api/v1/namespaces/kube-system/endpoints/kube-controller-manager | jq .|grep resource对比正常环境和此异常环境的resourceVersion,异常环境确实kube-controller-manager的endpoint,resourceVersion一直维持不变。


3.通过kubectl delete endpint -n kube-system kube-controller-manager ,删除此endpoint, 发现kube-controller-manager启动成功,同时此endpoint的resourceVersion开始更新,初始以为问题解决,后发现kube-controller-manager反复重启问题依旧,日志报错仍和之前一样。

4.分析kube-controller-manager启动参数,leader-elect设置为true,此为高可用场景下多个kube-controller-manager实例竞争选举哪个实例为leader角色的开关,开启时kube-controller-manger实例启动时会连接kube-api竞争创建名为kube-controller-manager的endpoint,创建成功的kube-controller-manger实例为leader,其他实例为backup,同时leader实例需要定期更新此endpoint,维持leader地位。

5.分析kube-controller-manager日志,显示更新此endpoint超时,初始怀疑kube-api异常,检查kube-api日志未发现异常,同时kubectl操作流畅,通过curl调用kube-api 6443端口也正常响应,排除kube-api本身问题。
6.综上,排除kube-api问题后,怀疑kube-controller-manager实例连接kube-api的网络异常,检查/etc/kubernetes/controller-manager.conf发现,发现问题所在,环境配置了kube-controller-manager通过公网IP去连接kube-api,环境为公有云环境,有内外网IP,通过自动化部署工具创建集群时指定了公网IP,导致kube-controller-manager和kube-scheduler都是通过kube-api所在节点的公网IP去连接,导致连接不稳定。修改相关地址为内网IP后,问题未复现。

总结
1.“failed to renew lease kube-system/kube-controller-manager: failed to tryAcquireOrRenew context deadline exceeded”问题,一般从kube-api和网络链接入手。
2.此环境为非高可用环境,修改leader-elect为false避免kube-controller-manager定期去连接kube-api更新endpoint,理论也可以避免renew超时退出问题。
3.如果特定场景,kube-controller等组件必须通过公网连接kube-api,如果有相关参数配置连接kube-api超时时间也是一种解决思路,笔者搜索kube-controller-manager启动参数,暂未发现与此有关参数,待代码确认是否写死了。
kube-controller-manager反复重启解决的更多相关文章
- XP系统无法进入界面 不断的反复重启-解决方法
XP系统无法进入界面 不断的反复重启-解决方法 XP系统无法进入界面 不断的反复重启-解决方法 一般都是非正常关机导致磁盘受到损坏.需要修复磁盘. 1.插入带PE的u盘,进入PE系统后 2.win+R ...
- dial tcp 10.96.0.1:443: getsockopt: no route to host --- kubernetes(k8s)DNS 服务反复重启
kubernetes(k8s)DNS 服务反复重启解决: k8s.io/dns/pkg/dns/dns.go:150: Failed to list *v1.Service: Get https:// ...
- (转)dial tcp 10.96.0.1:443: getsockopt: no route to host --- kubernetes(k8s)DNS 服务反复重启
转:https://blog.csdn.net/shida_csdn/article/details/80028905 kubernetes(k8s)DNS 服务反复重启解决: k8s.io/dns/ ...
- Windows反复重启的可能的解决办法
Windows反复重启,原因很多,下面提供两个可能的解决办法: 1. 查看BIOS中关于SATA的设置,一般只有两种PCIE和IDE,调整成另外一个试试: 2. 查看BIOS的启动模式,如果是UEFI ...
- 针对piix4_smbus ****host smbus controller not enabled的解决方法
SMBus 目录 SMBus与I2C的差别 SMBus 是 System Management Bus 的缩写,是1995年由Intel提出的,应用于移动PC和桌面PC系统中的低速率通讯.它主要是希望 ...
- [troubleshoot][daily][redhat] 设备反复重启故障排查
一台服务器设备,反复重启,每天重启数次. 一: 原因分析及初步排异. 1. 硬件,内存主板,一一更换,甚至除了硬盘将整台机器都换掉了,依然重启. 2. 排除电源问题,换了电源线,换了插座,还是重启 ...
- kubernetes的Controller Manager
1. Controller Manager简介 Controller Manager作为集群内部的管理控制中心,负责集群内的Node.Pod副本.服务端点(Endpoint).命名空间(Namespa ...
- kubernetes之Controller Manager原理分析
Controller Manager作为集群内部的管理控制中心,负责集群内的Node.Pod副本.服务端点(Endpoint).命名空间(Namespace).服务账号(ServiceAccount) ...
- 029.核心组件-Controller Manager
一 Controller Manager原理 1.1 Controller Manager概述 一般来说,智能系统和自动系统通常会通过一个"控制系统"来不断修正系统的工作状态.在K ...
随机推荐
- 超详细步骤---Linux下的最新Git版本安装
原文地址:https://blog.csdn.net/u010887744/article/details/53957613 [标注大头] 1.查看当前git版本:git --version 查看最新 ...
- 解决从dockerhub上下载debian:jessie失败
解决从dockerhub上下载debian:jessie失败 笔者使用docker build 构建镜像出现下面的错误 Step 1/12 : FROM debian:jessie Get https ...
- Xapian实战(四):搜索
参考资料: 学习Xapian(1)-基础的建索引和搜索 1. Xapian中用于搜索的类 Enquire - 提供了检索的接口:(Enquire API) QueryParser(QueryParse ...
- 手写实现java栈结构,并实现简易的计算器(基于后缀算法)
一.定义 栈是一种线性表结构,栈结构中有两端,对栈的操作都是对栈的一端进行操作的,那么被操作的一端称为栈顶,另一端则为栈底.对栈的操作其实就是只有两种,分别是入栈(也称为压栈)和出栈(也称为弹栈).入 ...
- 如何使用Golang实现一个API网关
你是否也存在过这样的需求,想要公开一个接口到网络上.但是还得加点权限,否则被人乱调用就不好了.这个权限验证的过程,最好越简单越好,可能只是对比两个字符串相等就够了.一般情况下我们遇到这种需要,就是在函 ...
- Go中的数组切片的使用总结
代码示例 package main import "fmt" func main(){ fmt.Println("Hello, world") // 定义数组的 ...
- B. Welfare State(RMQ问题的逆向考虑)
\(对于操作1,我们只关心最后一次操作.\) \(对于操作2,我们只关心值最大的一次操作.\) \(也就是说,我们记录每个居民最后一次被修改的位置\) \(然后它的最终答案就是从这个位置起,max(操 ...
- Face The Right Way 开关(POJ3276)
描述: \( N 头牛排成了一列.每头牛或者向前或者向后.为了让所有的牛都面向前方,农夫约翰买了 一台自动转向的机器. 这个机器在购买时就必须设定一个数值 K,机器每操作一次恰好使 K 头连续的牛转向 ...
- P2432 zxbsmk爱查错
描述:https://www.luogu.com.cn/problem/P2432 给你一个主串以及若干个子串,求最少需要删除几个字母,使得主串能由一些子串组成. dp [ i ] 表示前 i 个字符 ...
- 2249: Altruistic Amphibians 01背包的应用 + lh的简单图论 图转树求lca
第一个 写了两个比较简单的数论题目,就是整除理论的两个题目,第一个题目比较蠢,第二个稍微要动一点脑筋 Codeforces Round #347 (Div. 2) – A. Complicated G ...