問題
AKS 上で NGINX Ingress Controller を使っていて、 v1.0.0 にアップグレードしたらサイトが404エラーになってしまった。
解析
ログを見ると以下エラーが出ていた。ingress class のバリデートでエラーが出たから Ingress を無効化したらしい。
I0927 15:01:58.774073 6 store.go:361] "Ignoring ingress because of error while validating ingress class" ingress="mvp-staging/sitecore-ingress" error="ingress does not contain a valid IngressClass"
結構重要なログだと思うので Info じゃなくて、 Error 以上で出してほしい。。。
原因
NGINX Ingress Controller v1.0.0 から ingressClass オブジェクト が必須となったため。
対処
annotations
に kubernetes.io/ingress.class: "nginx"
を追加。
本来であれば ingressClass オブジェクトを追加するほうが良いらしいが、ひとまずこれで動く。
本問題とは別だが、対処例の apiVersion
も networking.k8s.io/v1
とするのが適切。
まとめ
Kubernetes のバージョン以外に、NGINX Ingress Controller のバージョンアップでもこういった躓きポイントがあるのでしっかりした検証が必要と再認識した。
プロダクション環境ではこういった部分もリリース後の確認、失敗時の切り戻し手順などを確立しておきたい。