kubernetes 操作员是否可以在 Persistent Volume Claim (PVC) 中监视文件?我正在创建一个 k8s Golang 运算符来部署和管理我的应用程序。应用程序 pod 将具有已安装的卷。如果 PVC 上的配置文件发生更改,我需要能够停止和启动 pod。这可能吗?我可以在文档中看到我可以为 PVC 添加一个观察者,但不确定这是否也可以观察文件更新或更改。
问问题
135 次
1 回答
3
正如评论中提到的,您需要一个支持 ReadWriteMany 的卷提供程序,但可以确定。这不是大多数操作员的工作方式,因此您必须自己管理文件监视,但有一些很好的低级 inotify 绑定可用,我认为 Viper 可以自行重新加载。将其与控制器运行时中的通道监视和与注入协调事件的文件监视接口的后台 goroutine 相结合,您应该一切就绪。
也就是说,除非绝对必要,否则应避免使用 RWX 卷,因为所有现有的提供程序(NFS、CephFS 等)都有明显的缺点和需要注意的警告。这也不是操作员应该如何工作的一般模型,它们应该是 API 驱动的。一个可能更好的方法是代替包含配置的共享 RWX 卷,在每个 pod 中有一个类似控制器的 sidecar,它正在监视 API 并在 pod 共享的 emptyDir 卷中重新生成配置。这基本上就是大多数 Ingress Controller 的工作方式,因此您可以使用它们作为示例。
于 2021-05-16T00:43:08.200 回答