kubelet版本选择_k8s kubelet版本升级问题,排查思路与方案

点击上方“K8S中文社区”,选择“置顶公众号”

关键时刻,第一时间送达!

图片纯属娱乐,本文主要内容,kubelet版本升级引起的容器重启机制与参考解决方案;

背景

k8s能够帮助我们的服务实现服务高可用,其提供的副本机制能够有效的保证运行实例的副本数,从而当某个实例异常后服务可以重新被自动唤起,但在我们的生产环境中,某些特殊的服务(如广告资金服务或计费服务)因服务重启期间而导致的业务中断,对业务请求的延时响应也是不可忽略的问题;而在kubelet的部分版本升级中,也可能会因版本的升级进而导致已经运行的容器服务发生重启;而在特殊的生产环境中类似的操作直接引起的服务重启是需要我们尽可能去规避的;

此篇内容即是对kubelet版本升级与container自动重启这一关联过程原因分析以及供参考方案的简单介绍。

环境基本信息:

操作系统: CentOS 7

kubelet当前版本:1.7.4

目标kubelet版本:1.9.1

现象

当前kubelet版本1.7.4中已持续运行一些容器服务,在对kubelet版本升级1.9.1后,所升级机器上已持续运行多天的container服务出现自动重启,重启之后继续提供服务

原因

因为container的自动重启发生在kubelet版本升级后,所以需要沿kubelet启动后的接口函数调用链进行定位,以确认container重启的根本原因.

总体调用链关系图:(右下角computePodActions() 函数中containerChanged()函数即为决定container服务是否重启的判断逻辑)

清无码图下载(https://pan.baidu.com/s/1dtMmbO)

链路跟踪过程:(整体kubelet调用关系比较复杂,后面仅针对问题的场景关键链路进行分析)

@kubernetes-1.9.1/cmd/kubelet/kubelet.go (@表示所处的源码文件,后面意义相同)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值