(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Nginx/Ingress】[emerg] unknown directiveというエラー

スポンサーリンク

事象

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が反映されない)も合わせて併発します。

以上です。