想定外の動作となった場合の切り分け方法
####
事象の切り分け方法
====
各パートでKubernetes環境にデプロイしたアプリケーションの動作が期待した通りとならない場合の切り分けについてご紹介します。
その他の対応方法のヒントは `NGINX Docs `__ をご覧ください
1. 各リソースのデプロイに失敗する
----
- ``kubectl describe (-n )`` コマンドの結果を確認し、リソースのデプロイでエラーが発生していないか確認してください
- ``kubectl logs (-n )`` コマンドの結果を確認し、PODのログメッセージを確認し、エラーが発生していないか確認してください
2. リソースは正しく作成できたが設定が反映されない
----
- 1.の内容を参考にコマンドを実行してください
- 特にリソースが正しく生成された場合でも、NGINXのコンフィグロードでエラーとなる場合があります。その場合には、``kubectl logs`` コマンドでコンフィグロードに失敗する理由が表示されておりますのでそちらでご確認ください
- 一度設定の反映に成功し、その後リソースの内容変更によりエラーが発生した場合には、リソースの変更前の設定で動作いたします。注意深くログを確認し、問題箇所を特定してください
3. 期待した疎通ができない
----
- ``kubectl logs -n nginx-ingress`` コマンドの結果を確認し、Access LogとError Logの内容を確認してください
- NGINX Ingress Controllerで通信を受け付けた場合には以下のようにログが出力されます。ログが出力されること、ログの内容をもとに期待した通信となっているか確認してください
.. code-block:: bash
10.244.0.1 - - [24/Aug/2021:14:30:51 +0000] "GET / HTTP/1.1" 500 178 "-" "curl/7.68.0" "-"
10.244.0.1 - - [25/Aug/2021:05:47:17 +0000] "POST / HTTP/1.1" 200 246 "-" "curl/7.68.0" "-"
10.244.0.1 - - [25/Aug/2021:05:47:09 +0000] "POST / HTTP/1.1" 200 246 "-" "curl/7.68.0" "-"
4. 設定の内容を確認したい
----
- NGINX Ingress Controllerは本書で紹介のVirtualServer / VirtualServerRoute / PolicyやIngressにより設定を行うと、それらの内容からNGINXの設定ファイルに変換し、その内容を反映しています
- ``kubectl exec -it -n nginx-ingress -- bash`` コマンドを実行し、NGINX Ingress ControllerのShellを操作することが可能です
- 以下フォルダの各ファイルが適切な設定となっているかご確認ください。意図したファイルが生成されていない場合にはリソースの作成に失敗している可能性がありますのでログをご確認ください。
.. list-table::
:widths: 20 40 20
:header-rows: 1
:stub-columns: 1
* - **PATH**
- **Content**
- **File Name**
* - /etc/nginx/conf.d/
- HTTP/HTTPSの主な設定が格納されます。複数のVirtualServerをデプロイした場合には複数のファイルが生成されます。
- vs__