想问一下群里面的大佬:① kruise-daemon如何实现监听pod的metadata的?这部分是在哪部分代码实现的呀?
② 如果想实现除了Cloneset、Advanced StatefulSet以外的自定义的CRD,也想使用kruise-daemon,需要对kruise-daemon进行修改么?
OpenKruise-daemon 通过监听 Kubernetes API Server 上的事件来实现对 Pod metadata 的监听。具体来说,它使用了一个名为 watcher
的 Go 语言库来监听 Kubernetes API Server 上的事件。当有新的 Pod 创建、更新或删除时,watcher
会收到相应的事件通知,然后根据事件类型执行相应的操作。
如果你想实现除了 Cloneset、Advanced StatefulSet 以外的自定义的 CRD,并且也想使用 kruise-daemon,你不需要对 kruise-daemon 进行修改。kruise-daemon 是一个独立的组件,它可以处理各种类型的 Kubernetes 资源,包括自定义的 CRD。只要你正确配置了 kruise-daemon,它就可以自动识别并处理你的自定义 CRD。
① 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 一样使用它。
kruise-daemon暴露的大部分功能和workload是无关的。比如自己顶一个CRD,这个CRD也想使用参数更新的能力,kruise-daemon就可以直接拿来用吧 ——该回答整理自钉群“OpenKruise 社区交流群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。