【运维面试】k8s的node是靠什么来管理的?

运维面试秘籍 专栏收录该内容
87 篇文章 91 订阅 ¥99.00 ¥99.90

k8s中有三个组件与node交互,分别是node controller,kubelet,kubectl

在node的整个生命周期中,node controller充当多个角色,
第一个:在node注册入集群的时候,给他分配一个CIDR地址快。
第二个是维护node controller 内部节点可用列表,如果node controller检测node不健康,他就会向供应商询问节点虚拟机是否可用,如果不可应就从列表剔除。

第三个是监控节点的健康状态,当node controller检测node不可达时,负责将node状态中的not ready condition 跟新到 condition unknown, 然后将node上所有的pod删除,(默认不可达超过40S就会标记成condition unkunown,此时并没有发生删除pod的操作,系统会尝试重新联系node,如果恢复就被标记为node ready. 如果不可达超过5分钟,就会采取删除pod的操作)

每隔多少秒去检测一次节点的状态是: --node-monitor-period

node controller 源码中,monitor node health 是定时更新node的信息:

  1. 获取所有的node信息,按照哪些是新增的,哪些是需要删除的,以及哪些是需要重新规划的返回节点相应的信息
  2. 对新增node,删除node以及待规划的node做对应的处理
  3. 遍历所有node,更新node状态,调用tryupdatenodehealth方法

而kubelet运行在node上,维持运行中的pods以及k8s运行的环境,主要完成以下使命:
5. 监视分配给node的节点pods
6. 挂载pod所需要的volumes
7. 下载pod的secret
8. 通过docker来运行pod中的容器
9. 周期的执行pod中为容器定义的liveness探针
10. 上报pod的状态给系统的其他组件
11. 上报node的状态

  • 1
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 岁月 设计师:pinMode 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值