概述
基于client-go、gorm实现,实时监听 & 解析入DB 了多种事件。 代码简明,方便扩展
实时监听 k8s event和namespace、pod等的事件,可以作为监控、系统对接的接入
传送门
使用
go mod tidy
go run K8S-Eventlet.go
FAQ
go mod 自动依赖可能有问题,若
# k8s.io/client-go/tools/clientcmd/api/v1
/go/pkg/mod/k8s.io/client-go@v12.0.0+incompatible/tools/clientcmd/api/v1/conversion.go:29:15: scheme.AddConversionFuncs undefined (type *runtime.Scheme has no field or method AddConversionFuncs)
/go/pkg/mod/k8s.io/client-go@v12.0.0+incompatible/tools/clientcmd/api/v1/conversion.go:31:12: s.DefaultConvert undefined (type conversion.Scope has no field or method DefaultConvert)
修改一下 go.mod 中的内容:
k8s.io\client-go@v11.0.0+incompatible 换成 k8s.io/client-go v0.18.2
或
k8s.io\client-go@v12.0.0+incompatible 换成 k8s.io/client-go v0.18.2
补充说明
代码比较简明,适合学习、易扩展,需要注意的是,还缺少 queue支持、去重机制。
另,go 对工厂模式的变相实现可吐槽