外部と内部の 2 つの ingress-nginx コントローラーを実行しています。すべてが機能し、トラフィックが流れていますが、何らかの理由で、kubernetes イングレス リソースにコントローラーのアドレスが表示されません。
Every 2.0s: kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
my-app-external nginx-external my.app.com 80, 443 21h
すべてが機能しますが、アドレスが表示されないのが気になります。私のコントローラーは適切に展開されています
Every 2.0s: kubectl get services -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-external-ingress-nginx-controller LoadBalancer 10.191.93.78 <pub_ip> 80:30470/TCP,443:31251/TCP 10d
nginx-external-ingress-nginx-defaultbackend ClusterIP 10.191.95.41 <none> 80/TCP 10d
nginx-internal-ingress-nginx-controller LoadBalancer 10.191.71.162 10.227.13.2 80:31858/TCP,443:30080/TCP 10d
nginx-internal-ingress-nginx-defaultbackend ClusterIP 10.191.78.126 <none> 80/TCP 10d
ingress-nginx/ingress-nginx helm チャートの値は次のようになります
# internal
controller:
ingressClassResource:
name: "nginx-internal"
controllerValue: "k8s.io/internal-ingress-nginx"
service:
annotations:
cloud.google.com/load-balancer-type: "Internal"
networking.gke.io/internal-load-balancer-allow-global-access: "true"
と
# external
controller:
ingressClassResource:
name: "nginx-external"
controllerValue: "k8s.io/external-ingress-nginx"
私のkubernetesイングレスリソースはそのように見えます
apiVersion: networking.k8s.io/v1
kind: Ingress
...
spec:
ingressClassName: "nginx-external"
そして私のIngressClassはこのように見えます
Every 2.0s: kubectl get ingressclass
NAME CONTROLLER PARAMETERS AGE
nginx-external k8s.io/external-ingress-nginx <none> 21h
nginx-internal k8s.io/internal-ingress-nginx <none> 3d21h
その上、この変更の前に、私は同じ外部および内部イングレスを実行していcontrollerValue
たので、イングレスクラスは次のようになりました
Every 2.0s: kubectl get ingressclass MacBook-Pro-5.local: Tue Dec 7 12:31:02 2021
NAME CONTROLLER PARAMETERS AGE
nginx-external k8s.io/ingress-nginx <none> 21h
nginx-internal k8s.io/ingress-nginx <none> 3d21h
すべてうまくいきました!!!!!、しかし、そのシナリオのイングレスは間違ったアドレスを表示し、間違ったイングレスコントローラーと通信していることを示しました。このように(外部と内部の両方が外部IPを表示していることに注意してください)
Every 2.0s: kubectl get ingress MacBook-Pro-5.local: Tue Dec 7 12:33:30 2021
NAME CLASS HOSTS ADDRESS PORTS AGE
tst-my-app-1 nginx-external tst-my.app.domain <pub_ip> 80, 443 180d
tst-my-app-2 nginx-internal tst-my.app2.domain <pub_ip> 80 206d
...
そして、それらは適切に機能しました!!、トラフィックは想定どおりに進んでいました-私の観点からは、それは単なる視覚的なバグでした)-私の質問は、他の誰かもそれに遭遇しましたか? または、それを修正して、イングレスがコントローラーから取得したアドレスをkubernetesに適切に表示させる方法を知っていますか?