如何查看我的 Kubernetes Ingress Controller 的日志?

如何查看我的 Kubernetes Ingress Controller 的日志?

我最近开始了解 Kubernetes,并试图了解为什么我的入口控制器出现 502 错误。

我正在使用谷歌云平台。如果我使用它的静态 IP 地址连接,我可以看到我的服务类型:LoadBalancer 正在运行,但似乎我可能没有正确配置我的入口控制器,因为它出现了 502 错误。

但是当我部署时它没有显示任何错误,并且我找不到 Ingress 的任何日志,所以我不明白为什么会显示 502。

答案1

在 GKE 上,Ingress 日志位于 Stackdriver Logging 下的 Web 控制台中的“Cloud HTTP Load Balancer”下:

在此处输入图片描述

答案2

我使用命名空间和标签在 CLI 中获取日志。

kubectl logs -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx

显示入口标签

kubectl get ingress --show-labels

我在我的云平台的 Web 界面中找到了命名空间(“ingress-nginx”)。

有关的:https://stackoverflow.com/questions/46467929/accessing-nginx-ingress-controller-error-log

答案3

您应该能够像查看任何其他 pod 一样查看它们(kubectl logs -n namespace-name pod-name)。名称和命名空间将根据您使用的入口控制器而变化。

请注意,入口控制器通常设置在不同的命名空间中,因此您可能需要在其中查找 pod。例如,nginx 入口的默认配置使用命名空间“nginx-ingress”。

答案4

发布 Abe Voelker 答案的更新版本,因为 UI 和流程在 5 年内发生了变化。

如果您使用 nginx-ingress,其他人已经给出了很好的答案。但是,如果您使用的是“外部 HTTP(S) LB”,则可以在“应用程序负载均衡器”资源类型下的“日志资源管理器”中找到它们。如果您有多个 LB,则可以按 URL 映射或转发规则进一步过滤。

Google Cloud Console - 日志记录 - 日志浏览器 - 在哪里可以找到 LB 日志

相关内容