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 通过注册钩子函数来监控和操作资源。
🏷️