开发者社区 > 云原生 > 容器服务 > 正文

OpenKruise-daemon如何实现监听pod的metadata的?

想问一下群里面的大佬:① kruise-daemon如何实现监听pod的metadata的?这部分是在哪部分代码实现的呀?
② 如果想实现除了Cloneset、Advanced StatefulSet以外的自定义的CRD,也想使用kruise-daemon,需要对kruise-daemon进行修改么?

展开
收起
奔放或澜 2023-12-03 16:32:32 64 0
3 条回答
写回答
取消 提交回答
    1. OpenKruise-daemon 通过监听 Kubernetes API Server 上的事件来实现对 Pod metadata 的监听。具体来说,它使用了一个名为 watcher 的 Go 语言库来监听 Kubernetes API Server 上的事件。当有新的 Pod 创建、更新或删除时,watcher 会收到相应的事件通知,然后根据事件类型执行相应的操作。

    2. 如果你想实现除了 Cloneset、Advanced StatefulSet 以外的自定义的 CRD,并且也想使用 kruise-daemon,你不需要对 kruise-daemon 进行修改。kruise-daemon 是一个独立的组件,它可以处理各种类型的 Kubernetes 资源,包括自定义的 CRD。只要你正确配置了 kruise-daemon,它就可以自动识别并处理你的自定义 CRD。

    2023-12-05 10:06:56
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    ① Kruise-daemon 通过监听 Kubernetes API Server 上的事件来实现对 Pod 的元数据进行监听。具体来说,Kruise-daemon 会订阅 Kubernetes API Server 上关于 Pod 的事件,如创建、更新和删除等操作。当这些事件发生时,Kruise-daemon 会获取到相关的 Pod 信息,并对其进行相应的处理。这部分代码实现在 kruise-daemon 的源代码中,位于 pkg/server/server.go 文件的 func (s *Server) Run() error 函数中。

    ② 如果你想实现除了 Cloneset、Advanced StatefulSet 以外的自定义 CRD,并且也想使用 kruise-daemon,你不需要对 kruise-daemon 进行修改。因为 Kruise-daemon 支持多种类型的 CRD,包括自定义的 CRD。只要你的自定义 CRD 符合 Kruise-daemon 的要求,你就可以像使用其他类型的 CRD 一样使用它。

    2023-12-03 19:58:49
    赞同 展开评论 打赏
  • kruise-daemon暴露的大部分功能和workload是无关的。比如自己顶一个CRD,这个CRD也想使用参数更新的能力,kruise-daemon就可以直接拿来用吧 ——该回答整理自钉群“OpenKruise 社区交流群”

    2023-12-03 17:25:53
    赞同 展开评论 打赏
问答分类:

国内唯一 Forrester 公共云容器平台领导者象限。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载