我正在使用filebeat作为守护程序集,我希望每个生成的pod都导出到logstash的单个端口。
有没有一种方法可以用于此?
No.您不能为同一守护程序集或部署的 Pod 提供不同的配置映射。如果您希望守护程序的每个 pod 具有不同的配置,那么您可以挂载一些本地卷(使用 hostpath),以便所有 Pod 都将从该路径获取配置,并且每个节点上的配置可以不同。或者,您需要使用不同的配置映射部署不同的守护程序集,并为每个守护进程选择不同的节点。
正如你可以在这里读到的:
守护进程集确保所有(或部分)节点运行 Pod 的副本。
。基于单个模板的Pod
副本,这就是为什么您无法指定由DaemonSet Controller
管理的不同Pods
使用的不同ConfigMaps
的原因。
作为替代方法,您可以配置许多不同的DaemonSets
其中每个将负责仅在特定节点上运行模板中指定的Pod
的副本。
另一种选择是使用静态 Pod:
可以通过将文件写入某个目录来创建 Pods 库贝莱特观看。这些称为静态 Pod。与守护程序集不同, 静态 Pod 无法使用 kubectl 或其他 Kubernetes API 进行管理 客户。静态 Pod 不依赖于 apiserver,使它们 在集群引导情况下很有用。此外,静态 Pod 可能是 将来已弃用。
这里描述了创建静态 Pod的整个过程。
我希望它有所帮助。
您可以使用每个节点中包含配置的 ConfigMapspec.nodeName
并向您的 Pod 公开环境。然后,您的 Pod 可以知道它在哪个节点上运行,并决定它加载哪个配置。