web-dev-qa-db-ja.com

nginx-ingress-controllerエラーログへのアクセス

Kubernetesマスターノードを1つとワーカーノードを2つ設定しました。 kubectlを使用して、2つのWebアプリケーションをポッドとしてデプロイしました。 nginx-ingress-controller(画像:gcr.io/google_containers/nginx-ingress-controller:0.9.0-beta.6)をデプロイし、nodeportオプションを使用して同じサービスを作成しました。 nginx-ingress-controllerのエラーログにアクセスするにはどうすればよいですか? error.logの下に/var/log/nginx/が表示されていますが、/dev/stderrにリンクされています。

7
Uma Maheswari

ほとんどの場合、コンテナー化されたアプリケーションはログをstdout/stderrに吐き出します。つまり、コンテナーログとして使用できます。 Kubernetesでは、ieを使用してこれらのログにアクセスできます。 kubectl logs <pod>

更新:ログCLIを参照するための非常に優れたツール- https://github.com/wercker/stern

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

私にとっては、kube-systemポッドの名前空間nginx-ingress-controller-586cdc477c-rhj9z

今、あなたと同じようにログを取得するか、他のポッドを使用して

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

私の好み:kubectl logs -lapp=nginx-ingress

(ラベルnginx-ingressが付いたすべてのポッドのログを取得します)

0
simon