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 ...
随机推荐
- ubuntu(物理机)连接ARM开发板
非虚拟机 ubuntu下连接开发板 首先安装超级终端minicom sudo apt-get install minicom 安装完minicom以后,需要将开发板和电脑进行物理连接.需要使用一条网线 ...
- 如何在mysql中实现自然排序
背景 熟悉mysql的同学应该清楚,mysql在对字符串做order by排序时是按照字典序进行排序的,但是如果字符串中包含数字的话(我们称这种类型的字符串为alphanumeric),仅按照字典序的 ...
- Qt之QListWidget:项目的多选与单选设置
2019独角兽企业重金招聘Python工程师标准>>> #include "widget.h" #include <QApplication> #in ...
- 如何在Vue项目中优雅的使用sass
开始之前,请先确保有一个基于webpack模板的项目(vue-cli脚手架一键安装~) 1.打开项目终端,安装sass的依赖包 npm install --save-dev sass-loader / ...
- 初次认识Ngnix
这几天写那个HTTPD,最后觉得学到的好像很少,而且就算最后运行成功了好像也没有什么.所以想学习一些生活中真正在运用着的web服务器, 上网查询了些资料了解到apache, lighttpd, ngi ...
- 虚拟化云计算平台Proxmox VE
1.虚拟化技术介绍 1.1.OpenVZ 简介 OpenVZ 是开源软件, 是基于Linux平台的操作系统级服务器虚拟化解决方案,它是基于Linux内核和作业系统的操作系统级虚拟化技术. OpenVZ ...
- 聊聊算法——BFS和DFS
如果面试字节跳动和腾讯,上来就是先撕算法,阿里就是会突然给你电话,而且不太在意是周末还是深夜, 别问我怎么知道的,想确认的可以亲自去试试.说到算法,直接力扣hard三百题也是可以的,但似乎会比较伤脑, ...
- CC2530入门
一.简介 单片机(MCU)就是一个将微型计算机系统制作到里面的集成电路芯片. 微控制器的基本结构:内核+外设.内核通过寄存器控制外设:外设通过中断系统通知内核:内核与外设之间通过总线传输数据.地址及控 ...
- 环境篇:Kylin3.0.1集成CDH6.2.0
环境篇:Kylin3.0.1集成CDH6.2.0 Kylin是什么? Apache Kylin™是一个开源的.分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析( ...
- idea 2020 配置本地 Maven 仓库
问题: 默认Maven 仓库地址在C盘,C盘是系统盘能少放东西尽量少放. 只需要简单的两步 1.File~Settings 然后搜索 maven 如下图绿框 修改成你自己的 Maven 仓库 2.Fi ...