我正在使用 autpilot 模式将我的集群迁移到 GKE,并且我正在尝试应用 fluentbit 进行日志记录(发送到 Elasticsearch,然后发送到 Kibana 以在松弛通道上收到警报)。
但似乎 GKE Autopilot 不希望我在 hostPath
上做任何事情,除了根据此 documentation 读入 /var/log
中的文件。但是 Fluentbit 需要访问与 /var/lib/docker/containers
不同的 /var/log
并且还需要访问 /var/log
有没有办法解决这个问题,或者您通常如何通过警报登录 GKE Autopilot? 也欢迎经验分享
答案 0 :(得分:1)
引用官方文档:
<块引用>大多数外部监控工具都需要限制访问。来自多个 Google Cloud 合作伙伴的解决方案可用于 Autopilot,但并非所有解决方案都受支持,并且自定义监控工具无法安装在 Autopilot 集群上。
-- Cloud.google.com: Kubernetes Engine: Docs: Concepts: Autopilot overview: External monitoring tools
HostPort 和 hostNetwork 不被允许,因为节点管理由 GKE 处理。禁止在写入模式下使用 hostPath 卷,而在读取模式下使用 hostPath 卷仅允许 /var/log/
路径前缀。禁止在工作负载中使用 host namespaces。
-- Cloud.google.com: Kubernetes Engine: Docs: Concepts: Autopilot overview: Host options restrictions
因为您已经发现 /var/lib/docker/containers
模式下的 GKE
无法访问 Autopilot
目录。
作为解决方法,您可以尝试任一:
GKE
模式下使用 standard
集群。Cloud Operations
及其 Slack 通知渠道。您可以通过以下方式阅读有关此主题的更多信息:
我认为您还可以考虑查看将日志从 Elasticsearch
导出到 Cloud Logging
的指南:
其他资源: