Skip to content
This repository was archived by the owner on Aug 22, 2025. It is now read-only.

nginxinc/nginx-loadbalancer-kubernetes

nginx-k8s-loadbalancer

Welcome to the Nginx Kubernetes Load Balancer project !


This repo contains source code and documents for a new Kubernetes Controller, that provides TCP load balancing external to a Kubernetes Cluster running On Premises.


This is a replacement for a Cloud Providers "Service Type Loadbalancer", that is missing from On Premises Kubernetes Clusters.


Overview

  • Create a new K8s Controller, that will monitor specified k8s Services, and then send API calls to an external Nginx Plus server to manage Nginx Upstream servers automatically.
  • This will synchronize the K8s Service Endpoint list, with the Nginx LB server's Upstream server list.
  • The primary use case is for tracking the NodePort IP:Port definitions for the Nginx Ingress Controller's nginx-ingress Service.
  • With the Nginx Plus Server located external to the K8s cluster, this new controller LB function would provide an alternative TCP "Load Balancer Service" for On Premises K8s clusters, which do not have access to a Cloud providers "Service Type LoadBalancer".
  • Make the solution a native Kubernetes Component, running, configured and managed with standard K8s commands.

Reference Diagram


NGINX LB Server


Sample Screenshots of Runtime


Configuration with 2 Nginx LB Servers defined (HA):

NGINX LB ConfigMap


Nginx LB Server Dashboard and Logging

NGINX LB Create Nodeport

Legend:

  • Red - kubectl commands
  • Blue - nodeport and upstreams for http traffic
  • Indigo - nodeport and upstreams for https traffic
  • Green - logs for api calls to LB Server #1
  • Orange - Nginx LB Server upstream dashboard details
  • Kubernetes Worker Nodes are 10.1.1.8 and 10.1.1.10

Requirements

Please see the /docs folder for detailed documentation.


Installation

Please see the /docs folder for Installation Guide.


Development

Read the CONTRIBUTING.md file.


License

Apache License, Version 2.0

© F5 Networks, Inc. 2023

About

A Kubernetes Controller to synchronize NGINX+ Resources with Kubernetes Ingress Resources

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Languages