Skip to content

nginx/nginx-loadbalancer-kubernetes

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

CI Go Report Card License GitHub release (latest SemVer) GitHub go.mod Go version OpenSSF Scorecard CodeQL FOSSA Status Community Support Project Status: Active – The project has reached a stable, usable state and is being actively developed.

nginx-loadbalancer-kubernetes

Welcome to the NGINX LoadBalancer for Kubernetes Solution

Nginx K8s LB Nginx K8s LB

This repo contains source code and documents for a Kubernetes Controller from NGINX, that provides TCP and HTTP load balancing external to a Kubernetes cluster. The primary supported use case is for NGINXaaS for Azure's Load Balancer for Kubernetes, where users integrate an Azure Kubernetes Service service with an NGINXaaS deployment. It should also be possible to use this controller to integrate an on-prem Kubernetes cluster with one or many NGINX plus instances.

Overview

  • NLK - NGINX Loadbalancer for Kubernetes is a Kubernetes controller from NGINX that monitors specified Kubernetes services, and then sends API calls to an external NGINX Plus server to manage NGINX Upstream servers dynamically.
  • This will synchronize the Kubernetes service's endpoints with the NGINX server's upstream list.
  • One use case is to track theNodePort IP:Port definitions for the NGINX Ingress Controller's nginx-ingress Service.
  • NLK is a native Kubernetes controller, running, configured and managed with standard Kubernetes commands.
  • When NLK is paired with the NGINX Plus Server located external to the Kubernetes cluster, this controller will provide a TCP Load Balancer Service to the Kubernetes clusters.
  • NLK paired with the NGINX Plus Server located external to the Cluster, using NGINX's advanced HTTP features, provides an HTTP Load Balancer Service for enterprise traffic management solutions, such as:
    • MultiCluster Active/Active Load Balancing
    • Horizontal Cluster Scaling
    • HTTP Split Clients - for A/B, Blue/Green, and Canary test and production traffic steering. Allows Cluster operations/maintainence like upgrades, patching, expansion and troubleshooting with no downtime or reloads
    • Advanced TLS Processing - MutualTLS, OCSP, FIPS, dynamic cert loading
    • Advanced Security features - Oauth, JWT, App Protect WAF Firewall, Rate and Bandwidth limits
    • NGINX Java Script (NJS) for custom solutions
    • NGINX Zone Sync of KeyVal data

NLK Controller Software Design Overview - How it works

NLK Controller DESIGN and Architecture

Development

Read the CONTRIBUTING.md file.

Authors

  • Chris Akker - Solutions Architect - Community and Alliances @ F5, Inc.
  • Steve Wagner - Solutions Architect - Community and Alliances @ F5, Inc.

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

Releases

No releases published

Packages

No packages published

Languages

  • Go 97.3%
  • Mustache 2.4%
  • Dockerfile 0.3%