事象
Ingressを作成するもIngressコントローラーにて以下のログが出力され
ignoring add for ingress test-ingress based on annotation kubernetes.io/ingress.class with value
IngressにIPが割り振られない。
status: loadBalancer: {}
環境情報
- nginx-ingress-controller(ingress-community:0.35)
原因/解決策
Ingressコントローラのingress-class
がIngress側で指定されていない。
同値を以下のようannotationsに記載すれば
metadata: annotations: kubernetes.io/ingress.class: XX
Ingressは正しく作成される。
Event(v1.ObjectReference{Kind:"Ingress", Namespace:"xx", Name:"xx", UID:"..}): type: 'Normal' reason: 'CREATE' Ingress ..
以下、補足です。
補足
正しくIngressとIngressControllerが機能していれば以下のようにIPが割り振りされますが
$ kubectl describe ingress test-ingress -n test ... Name: test-ingress Namespace: test Address: X.X.X.X ...
機能していない場合はIngressは生成されるもののIP欄が空欄になります。
Address:
Ingressコントローラー側のログに表題のメッセージが出現している場合はannotationが原因なので、以下でingressclassの名前を取得した上で
# kubectl get ingressclass NAME CONTROLLER PARAMETERS AGE nginx k8s.io/ingress-nginx <none> ...
解決策のようにIngressのYAMLにて記載すればエラーは解消します。
以上、ご参考になれば幸いです。