3. L4 Load Balancer

Netris can provide service of cloud load balancer as described in Kubernetes documentation.

When creating a service (in your manifest file), you have the option of automatically creating a cloud network load balancer. This provides an externally-accessible IP address that sends traffic to the correct port on your cluster nodes.

Your configuration file might look like this:

apiVersion: v1
kind: Service
metadata:
  name: example-service
spec:
  selector:
    app: example_app
  ports:
    - port: 80
      targetPort: 9376
  type: LoadBalancer

Assuming Netris/Kubernetes integration is already done. Netris will allocate a public IP address and create an L4 load balancer service, that will be expecting traffic on spec.ports.port (port 80 in this example) and balance the traffic towards nodes with pods currently running spec.selector.app. (example_app in this case).

Dynamically allocated IP address can be found at status.loadBalancer.ingress (like in regular cloud environment)

status:
  loadBalancer:
    ingress:
      - ip: A.B.C.D

HealthChecks Netris L4 Load Balancer will probe nodeports for a healthy TCP connection with 1000 msec(can be changed from global config) delay and so will re-balance traffic away if a particular node becomes unavailable.

IP address pool for automatic allocation 

IP address Allocations and Assignments need to be defined in the subnets section of Netris. “Purpose” attribute of the assignment can be set to load-balancer, so the L4 Load Balancer service will use IP addresses from this pool for providing external load balancing services for Kubernetes. You can add multiple pools for the same site.

All tenants and users on a given site will be able to use the L4 Load Balancer service, sharing the pool of frontend IP addresses.

Re-use of IP address resources. L4 Load Balancer service will re-use IP addresses when possible. Netris will allocate the same IP address for multiple services as long as ports are not overlapping. But will not re-use IP addresses for services that belong to virtual kubernetes networks associated with different Netris tenants.