【问题标题】:Accessing nginx-ingress-controller error log访问 nginx-ingress-controller 错误日志
【发布时间】:2018-03-10 03:00:46
【问题描述】:

我已经设置了一个 Kubernetes 主节点和 2 个工作节点。我使用 kubectl 将两个 Web 应用程序部署为一个 pod。我部署了nginx-ingress-controller(图片:gcr.io/google_containers/nginx-ingress-controller:0.9.0-beta.6)并使用 nodeport 选项创建了一个服务。如何访问nginx-ingress-controller 的错误日志?我可以在/var/log/nginx/ 下看到error.log,但它是指向/dev/stderr 的链接。

【问题讨论】:

标签: nginx kubernetes


【解决方案1】:

TL;DR

kubectl logs -n <<ingress_namespace>> <<ingress_pod_name>>

检查 Ingress 控制器当前运行的命名空间。

$ kubectl get pods
NAME                                    READY   STATUS    RESTARTS   AGE
helloworld-deployment-7dc448d6b-5zvr8   1/1     Running   1          3d20h
helloworld-deployment-7dc448d6b-82dnt   1/1     Running   1          3d20h

$ kubectl get pods -n kube-system
NAME                                        READY   STATUS    RESTARTS   AGE
kube-apiserver-minikube                     1/1     Running   1          3d20h
nginx-ingress-controller-586cdc477c-rhj9z   1/1     Running   1          3d21h

对我来说,它恰好是 pod nginx-ingress-controller-586cdc477c-rhj9z 上的 kube-system 命名空间。

现在,像您一样获取日志或使用任何其他 pod

 kubectl logs -n kube-system nginx-ingress-controller-586cdc477c-rhj9z

【讨论】:

    【解决方案2】:

    在大多数情况下,您会看到容器化应用程序将其日志吐出到 stdout/stderr,这意味着它们可以作为容器日志使用。在 Kubernetes 中,您可以通过 ie 访问这些日志。 kubectl logs &lt;pod&gt;

    更新:一个非常好的日志 cli 浏览工具 - https://github.com/wercker/stern

    【讨论】:

    • 是的,我确实使用 kubectl 日志访问了日志。但我希望它只是标准输出日志。它有 stdout 和 stderr 日志吗?请确认。
    • 是的,两者都有
    【解决方案3】:

    我更喜欢:kubectl logs -lapp=nginx-ingress

    (获取标签为nginx-ingress的所有pod的日志)

    【讨论】:

    • kubectl -n ingress-nginx logs -f -l app.kubernetes.io/name=ingress-nginx 它需要命名空间。不错的提示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    • 2019-04-30
    • 2019-07-29
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    相关资源
    最近更新 更多