Categorygithub.com/sergiochamba/nginx-lb-operator
repositorypackage
0.0.0-20241024234740-5f3fcd68d7c6
Repository: https://github.com/sergiochamba/nginx-lb-operator.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author

# README

NGINX Load Balancer Operator

This operator manages LoadBalancer services in a Kubernetes cluster by configuring an external NGINX server to handle traffic.

Features

  • Allocates IPs from a configurable IP pool.
  • Generates NGINX and Keepalived configurations, including the cluster name to avoid conflicts.
  • Balances provisioned IPs among active and standby groups.
  • Handles service creation, update, and deletion.
  • Remains stateless and reconciles state on restarts.

Requirements

  • Kubernetes cluster.
  • External NGINX server(s) with SSH access.
  • Keepalived installed on NGINX server(s).
  • SSH keys and known hosts configured.

Configuration

IP Pool

Define the IP pool in config/ip-pool-config.yaml.

apiVersion: v1
kind: ConfigMap
metadata:
  name: ip-pool-config
  namespace: nginx-lb-operator-system
data:
  ip_pool: |
    # Single IPs
    10.1.1.55
    10.1.1.56
    # IP Range
    10.1.1.60 - 10.1.1.65