如何在Kubernetes集群中创建sidecar容器来扫描入口对象并将文件复制到另一个容器



基本上,我想要创建一个sidecar容器来扫描集群中的ingress对象,并将生成的文件复制到其他容器。

我怎样才能做到这一点?

您可以编写一个称为控制器的特殊Kubernetes程序。这是一个在普通pod中运行的普通程序,它使用Kubernetes API来观察一些对象集并修改其他一些对象集。

控制器的主回路可以非常简单地完成您所描述的操作:

  1. 观察所有Ingress对象(在名称空间中,匹配一些标签,…(
  2. 在控制器中的普通变量中保持当前Ingress组合集的一些状态。(如果控制器退出并重新启动,则监视将通过将所有当前对象重播到新的控制器进程中开始。(
  3. 生成要输出到ConfigMap对象中的文件

然后其他pod可以像任何其他ConfigMap一样安装ConfigMap,它恰好由您的控制器所有,而不是手动维护。

这个过程与"sidecar"容器不太匹配;它基本上运行一个完全独立的过程,不与特定的pod紧密绑定。这也避免了尝试手动修改容器文件系统,这通过以下几种方式为您提供了弹性:如果一个新的pod启动,它将自动获取现有的ConfigMap内容;如果您的控制器在某种程度上完全失败,那么pod可以继续使用旧的ConfigMap内容,直到它重新启动。

相关内容

  • 没有找到相关文章

最新更新