基本上,我想要创建一个 sidecar 容器来扫描集群中的入口对象并将生成的文件复制到其他容器。
我怎样才能做到这一点?
基本上,我想要创建一个 sidecar 容器来扫描集群中的入口对象并将生成的文件复制到其他容器。
我怎样才能做到这一点?
您可以编写一个称为控制器的特殊 Kubernetes 程序。这是一个普通的程序,运行在一个普通的 pod 中,它使用Kubernetes API来监视一些对象集并修改一些其他对象集。
执行您所描述的控制器的主循环可能非常简单:
然后其他 pod 可以像任何其他 ConfigMap 一样挂载 ConfigMap,它恰好由您的控制器拥有,而不是手动维护。
这个过程不适合“sidecar”容器。它基本上运行一个完全独立的进程,没有紧密绑定到特定的 pod。这也避免了尝试手动修改容器文件系统,从而以多种方式为您提供弹性:如果新 pod 启动,它将自动获取现有的 ConfigMap 内容;如果你的控制器以某种方式彻底失败,那么 pod 可以继续使用旧的 ConfigMap 内容,直到它重新启动。