I am trying to better understand Metallb with and without Rancher and can always get an external IP address by doing the following:
$ kubectl create deploy nginx --image nginx:latest
deployment.apps/nginx created
$ kubectl expose deploy nginx --port 80 --type LoadBalancer
service/nginx exposed
$ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/nginx-7584b6f84c-rr9jj 1/1 Running 0 109s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.43.0.1
none 443/TCP 8d
service/nginx LoadBalancer 10.43.153.34 192.168.0.240 80:30480/TCP 11s
What I don't understand is why does node itself not get an IP (I know you can use the default system one) and is there a better way than using expose as I would have thought converting/updating an existing service would better? This also applies for Rancher, would it not be better to advertise it on a dedicated IP-Address?