Microk8s bare-metal kubernetes server loadbalancer and ingress routing issue

12/6/2020

I have the installed latest microk8s and enabled nginx-ingress and metallb addons

I have everything configured and works well, but I can't seem to get to connect traffic between:

x-ingress-ingress-nginx-controller service

NAME                                TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)                      AGE
x-ingress-ingress-nginx-controller   LoadBalancer   10.152.183.90    192.168.89.165   80:31080/TCP,443:31443/TCP

and the ingress itself

NAME              CLASS    HOSTS                 ADDRESS     PORTS     AGE
x-ingress         <none>   x.com + 83 more...   127.0.0.1   80, 443   2d8h

Also, the ingress appears to bind to address 127.0.0.1. From reading through the project, i understand that this is correct, although I previously (kubeadm, cloud providers) used to get a load balancer ip (ex 192.168.89.165 instead of 127.0.0.1 in this case)

Please note that the node is on a different ip 192.168.89.160 than the loadbalancer, as per MetalLb documentation

The ingress is working and serving traffic correctly when curl-ed on 127.0.0.1

curl-ing 192.168.89.165, or 10.152.183.90(the loadbalancer cluster ip) is failing with 'connection refused'

Is this correct behaviour, is there a problem with the setup, how to connect route traffic from the loadbalanced ingress service? I must be missing something, but can't figure out what

Thank you very much!

-- Anatol Bran
bare-metal-server
kubernetes
kubernetes-ingress
kubernetes-service
microk8s

0 Answers