看你想做到什么程度。

简单的可以像 Prometheus 或 CoreDNS,在编译期插拔:

Prometheus 注册服务发现插件

复杂点可以像 K8s 的 CNI,编译成可执行文件再被调用,或者通过 RPC 调用(例如:hashicorp/go-plugin)。

最后可以考虑 Go 的 Plugin 功能(本质是动态链接库)。

=== 更新 1 ===

推荐一下这篇文章,总结了常见的插件模式(包括上面没提到的脚本)

Plugins in Go - Applied Go