Deploy Ingress Nginx Controller with MetalLB LoadBalancer
Install Nginx Ingress Controller in Kubernetes
- 
	Download Nginx controller deployment for Baremetal: 
 controller_tag=$(curl -s https://api.github.com/repos/kubernetes/ingress-nginx/releases/latest | grep tag_name | cut -d '"' -f 4) wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/${controller_tag}/deploy/static/provider/baremetal/deploy.yaml
- 
	Rename deployment file: 
 mv deploy.yaml nginx-ingress-controller-deploy.yaml
- 
	Apply Nginx ingress controller manifest deployment file: 
 kubectl apply -f nginx-ingress-controller-deploy.yaml
Setting Nginx Ingress to use MetalLB
- 
	Patch ingress-nginx-controller service by setting service type to LoadBalancer.
 kubectl -n ingress-nginx patch svc ingress-nginx-controller --type='json' -p '[{"op":"replace","path":"/spec/type","value":"LoadBalancer"}]'
- 
	Edit ingress-nginx-controller service and set externalIPs
 vim external-ips.yaml
 spec:
 externalIPs:
 - Your Node IP
 
- 
	Now let's apply the patch to the service.
 kubectl -n ingress-nginx patch svc ingress-nginx-controller --patch "$(cat external-ips.yaml)"

 
                              



