我在Google Container Engine中启用了Stackdriver日志代理的容器集群。它正确地从我的容器中拉出stdout日志。现在我想更改fluentd配置来指定日志解析器,以便GCP日志记录视图中显示的日志具有正确的严重性和组件。如何更改GKE管理日志代理的fluentd配置?
在此之后Stackdriver logging guide from kubernetes.io,我曾尝试:
- 获取fluentd
ConfigMap
作为YML文件 - 新增根据我log4js新
<filter>
日志格式 - 创建一个新的
ConfigMap
命名fluentd -cm-2 inkube-system
命名空间 - 编辑
DaemonSet
fluentd并设置其ConfigMap
至fluentd-cm-2。我使用kubectl edit ds
而不是kubectl replace -f
,因为后者因错误消息失败而失败:“对象已被修改”,即使在获得DaemonSet
yaml的新副本后。
意外的结果:DaemonSet
重新启动,但其配置将恢复到原来的ConfigMap
,所以我的变化并没有生效。
我也试过直接编辑0(kubectl edit cm fluentd-gcp-config-v1.1 --namespace kube-system
)并保存它,但它也被恢复了。
我注意到用于fluentd的DaemonSet
和ConfigMap
标有addonmanager.kubernetes.io/mode: Reconcile
。由于这种“调和”模式,我会得出结论GKE已经覆盖了我的设置。
所以,我的问题是:如何在集群配置时通过GKE安装日志记录代理时,如何更改Google Container Engine集群中的fluentd配置?
谢谢,我不喜欢跳过先决条件! – edwinbs