NGINX Ingress Controller
Deploy and manage NGINX Ingress Controller on your Kubernetes cluster with our production-ready Helm chart. Get advanced load balancing, SSL/TLS termination, and traffic management capabilities out of the box.
Enterprise Features
Advanced Load Balancing
Enterprise-grade load balancing with support for multiple algorithms, session persistence, and dynamic reconfiguration
SSL/TLS Management
Automated SSL/TLS certificate handling with support for multiple providers and custom certificates
Traffic Management
Sophisticated traffic routing with support for path-based routing, header-based routing, and canary deployments
Security Features
Built-in security features including WAF, rate limiting, and IP whitelisting
Monitoring & Metrics
Prometheus metrics integration for real-time monitoring and alerting
High Availability
Support for multiple replicas with leader election for high availability setups
Installation Options
Choose your preferred installation method to get started with NGINX Ingress Controller:
Install from ArtifactHub
# Add the official nginx-ingress repository
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
# Pull the chart
helm pull ingress-nginx/ingress-nginx --untar
Push to Helmbay
Store your customized version in a private repository:
# Package the chart
helm package ./ingress-nginx
# Push to Helmbay (requires authentication)
helm push nginx-ingress-*.tgz oci://registry.helmbay.com/your-repo
Install from Helmbay
Deploy your customized version:
# Add Helmbay repository
helm repo add helmbay https://charts.helmbay.com
helm repo update
# Install NGINX Ingress Controller
helm install nginx-ingress helmbay/nginx-ingress \
--namespace ingress-nginx \
--create-namespace
Production-Ready Configurations
Start with our battle-tested configurations for different environments:
Production Setup
Recommended configuration for production environments
controller:
kind: Deployment
replicaCount: 3
minAvailable: 2
service:
type: LoadBalancer
resources:
requests:
cpu: 200m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi
metrics:
enabled: true
config:
use-forwarded-headers: "true"
use-proxy-protocol: "false"
enable-modsecurity: "true"
Development Setup
Lightweight configuration for development and testing
controller:
kind: Deployment
replicaCount: 1
service:
type: LoadBalancer
resources:
requests:
cpu: 100m
memory: 128Mi
metrics:
enabled: false
Enterprise Use Cases
Multi-Tenant Cluster
Secure multi-tenant setup with namespace isolation
controller:
ingressClassResource:
enabled: true
default: true
admissionWebhooks:
enabled: true
rbac:
create: true
scope:
enabled: true
namespace: ingress-nginx
config:
use-proxy-protocol: "true"
proxy-body-size: "50m"
client-header-buffer-size: "64k"
High-Traffic Production
Optimized for high-traffic production workloads
controller:
replicaCount: 5
autoscaling:
enabled: true
minReplicas: 3
maxReplicas: 10
targetCPUUtilizationPercentage: 75
resources:
requests:
cpu: 500m
memory: 512Mi
config:
use-gzip: "true"
enable-brotli: "true"
proxy-buffer-size: "16k"
proxy-body-size: "100m"
KEDA Autoscaling
Implement advanced autoscaling with KEDA:
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: nginx-ingress-scaler
namespace: ingress-nginx
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: nginx-ingress-controller
minReplicaCount: 2
maxReplicaCount: 20
triggers:
- type: cpu
metadata:
type: Utilization
value: "75"
- type: memory
metadata:
type: Utilization
value: "75"
- type: prometheus
metadata:
serverAddress: http://prometheus-server.monitoring.svc.cluster.local
metricName: nginx_ingress_controller_requests
threshold: '100'
query: sum(rate(nginx_ingress_controller_requests{namespace="ingress-nginx"}[2m]))
Install KEDA first:
helm repo add kedacore https://kedacore.github.io/charts
helm repo update
helm install keda kedacore/keda --namespace keda --create-namespace
Frequently Asked Questions
What is NGINX Ingress Controller?
NGINX Ingress Controller is a Kubernetes ingress controller that uses NGINX as a reverse proxy and load balancer. It provides advanced traffic routing, SSL/TLS termination, and load balancing capabilities for Kubernetes services.
How does it compare to other ingress controllers?
NGINX Ingress Controller stands out with its extensive feature set, proven reliability, and excellent performance. It offers advanced capabilities like request routing, TLS termination, and load balancing while maintaining compatibility with standard Kubernetes Ingress resources.
Can I customize SSL/TLS settings?
Yes, NGINX Ingress Controller supports extensive SSL/TLS customization, including custom certificates, multiple certificate chains, and integration with cert-manager for automated certificate management.
How do I monitor the ingress controller?
NGINX Ingress Controller provides Prometheus metrics out of the box. Enable the metrics.enabled setting in the Helm chart to expose these metrics, which can be scraped by Prometheus and visualized in Grafana.
Ready to Deploy NGINX Ingress?
Get started with Helmbay to customize and manage your NGINX Ingress Controller deployment. Store your configurations securely, collaborate with your team, and maintain version control of your Helm charts.