Search code examples
kubernetesnginx-ingressingress-controllernutanix

Issue setting up baremetal NGINX Ingress controller for Kubernetes


I have a baremetal Kubernetes cluster running on Nutanix. However during the process of setting up the ingress controller i have had issues with it picking up an external IP address. Im reasonably new to Kubernetes and trying to debug this but cant figure out whats wrong.

Following this article i ran the following commands:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.44.0/deploy/static/provider/cloud/deploy.yaml

The above command to setup the ingress controller, rbac, service accounts etc

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.44.0/deploy/static/provider/baremetal/deploy.yaml

And this command i believe should setup the service with the non internally networked IP, or the IP to which the Ingress rules would be applied against, and therefore my applications managed.

However what ends up being created is as follows. no external ip

I've also tried using port-forwards on the Kubernetes cluster and can use the associated containers, so i know they are definitely functioning. I just can't seem to get an External-IP associated with the ingress controller, and cant find any resources online saying there is a setting i may not have enabled. Could anyone please help?


Solution

  • ExternalIP will get populated once there is an rule for the traffic routing from outside to k8s network. This can be done by attaching an external reachable load balancer to ingress controller service. Few options are MetalLB, PureLB and OpenELB etc., Based on your requirement you can choose one.