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.
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?
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.