kubernetes kube-apiserver源码阅读8之Hook

💡 原文中文,约4800字,阅读约需12分钟。
📝

内容提要

本文介绍了 kube-apiserver 的钩子函数和 bootstrap-controller 的创建和启动逻辑,以及 Runner 对象和函数的实现。kube-apiserver 的 controller 通过注册钩子函数实现监控和操作资源。

🎯

关键要点

  • kube-apiserver 启动后执行逻辑通过 AddPostStartHook 实现。
  • 提供了两种钩子:PostStartHook 和 PreShutdownHook。
  • bootstrap-controller 是一个重要的控制器,负责自动创建 kubernetes 服务。
  • 创建 bootstrap-controller 的调用链包括设置控制器名称、创建静态客户端和加入 PostStartHook。
  • PostStartHook 中的 Start 函数负责创建服务对应的 Endpoints 并删除旧的 Endpoint。
  • Runner 对象用于管理后续要执行的函数,确保服务的正常运行。
  • RunKubernetesNamespaces 函数定期检查并创建必要的系统命名空间。
  • RunKubernetesService 函数负责等待服务就绪并更新 kubernetes 服务。
  • kube-apiserver 通过注册钩子函数来监控和操作资源。
➡️

继续阅读