AWS ELB not created from kubectl create LoadBalancer service yml command

I am following along with a Udemy Kubernetes course. In it the presenter creates a LoadBalancer Service on his Kubernetes stack which in turn automatically creates an AWS LoadBalancer. I did the same as him on my Rancher Kubernetes cluster but the ELB is not created.

I ran the command:

kubectl create service -f first-app/helloworld-service.yml

Using the following yml file:

apiVersion: v1
kind: Service
metadata:
name: helloworld-service
spec:
ports:

  • port: 80
    targetPort: nodejs-port
    protocol: TCP
    selector:
    app: helloworld
    type: LoadBalancer

After running this if I then run the command:

kubectl describe service helloworld-service

I get:

Name: helloworld-service
Namespace: default
Labels:
Selector: app=helloworld
Type: LoadBalancer
IP: 10.43.106.46
LoadBalancer Ingress: 13.55.44.26
Port: 80/TCP
NodePort: 31915/TCP
Endpoints: 10.42.50.211:3000
Session Affinity: None
Events:
FirstSeen LastSeen Count From SubObjectPath Type Reason Message


28m 28m 1 {service-controller } Normal CreatingLoadBalancer Creating load balancer
28m 28m 1 {service-controller } Normal CreatedLoadBalancer Created load balancer

Any idea what is going on? I am not sure how to resolve this.

Actually If I hit http://13.55.44.26:31915/ then I get the response I am looking for. I think I need to read up on how Rancher does it’s Load Balancing.

If you launch k8s with cloud provider = rancher (which is default), then it would use rancher’s load balancer, not creating AWS ELB.

See https://docs.rancher.com/rancher/v1.5/en/kubernetes/providers/