事象
Nginx Ingress Controller側にて以下のエラーログが出力される。
nginx-ingress nginx: [emerg] unknown directive "nginx.ingress.kubernetes.io/XX:" in /tmp/nginx-cfgxx:583
上記で表示されている"nginx.ingress.kubernetes.io/XX"はIngressのannotationsに記載している。
$ kubectl explain ingress.metadata.annotations KIND: Ingress FIELD: annotations
環境情報
- ingress-community:0.35
原因/解決策
以下のようにIngressのyamlに記載しているアノテーションに構文エラーが入っている。
metadata: annotations: nginx.ingress.kubernetes.io/proxy-body-size: 10m
よって同記載内容を以下のように修正すると
$ kubectl edit ingress XX
エラーは起きなくなる。また、ミスタイプは無くてもインデントの位置がずれていれば同じくエラーとなる。
以下、補足です。
補足
IngressにてTimeoutやsize関係を規定する場合はアノテーションに記載しますが
同定義に誤りがあるとイングレスコントローラーにエラーが出続けます。
ちなみに同エラーが起きている状態でPodを停止すると、それに紐づくIngressに通信を発生させてもPodには届かない事象(新しいIPが反映されない)も合わせて併発します。
以上です。