EKS Load Balancer IP Not Found

4/28/2020

I'm trying to use a load balancer to expose a service I have running on an EKS pod. My service is defined in a yaml like this:

kind: Service
apiVersion: v1
metadata:
  name: mlflow-server
  namespace: default
  labels:
    app: mlflow-server
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: nlb
spec:
  externalTrafficPolicy: Local
  type: LoadBalancer
  selector:
    app: mlflow-server
  ports:
    - name: http
      port: 88
      targetPort: http
    - name: https
      port: 443
      targetPort: https

This is to define a service for a pod that I have mlflow server running on. When I apply this and access the external IP generated for the service, I get a This site can’t be reached webpage error. Is there something I'm missing with exposing my service as a load balanced service to access the mlflow ui?

-- JMV12
kubernetes
load-balancing
service

1 Answer

5/26/2020

For a basic Loadbalancer type service you do not need the annotation service.beta.kubernetes.io/aws-load-balancer-type: nlb this creates the network load balancer. Now if you need it to be an NLB then there might be following problems:

  1. The nlb takes few minutes to come up when you apply the setting. If you check it just after you deploy it it will not be able to accept the traffic. Please do check if the intended network loadbalancer is up in your AWS-EC2console > Loadbalancer tab.

  2. The second problem that is more likely to happen is that the NLB is can be attached with only some instance types only. To check that you can go through the following link. https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-register-targets.html#register-deregister-targets

So if you actually do not have the need of network loadbalancer remove the annotation as the nlb has an higher charge as well. But, if that is the dire requirement do check with the second option if the instances that you are using on AWS are compatible with Network LoadBalancer.

-- ANKIT SURKAR
Source: StackOverflow