NGINX Ingress Controller
Purpose: HTTP/HTTPS ingress controller for Kubernetes
Version: v1.11.0 (Helm chart: ingress-nginx 4.10.0)
Namespace: ingress-nginx
Description
Routes external traffic to services based on ingress rules. Handles SSL termination, path-based routing, and load balancing.
Installation
Installed via ArgoCD from Helm chart: ingress-nginx/ingress-nginx
Configuration
Configuration file: config/dev/applications/nginx-ingress-values.yaml
controller:
service:
type: LoadBalancer
externalTrafficPolicy: Local
publishService:
enabled: false
metrics:
enabled: true
serviceMonitor:
enabled: true
release: kube-prometheus-stack
admissionWebhooks:
enabled: true
resources:
requests:
cpu: 100m
memory: 90Mi
defaultBackend:
enabled: false
IP Address
- External IP: 10.0.0.211 (via MetalLB)
- Service:
ingress-nginx-controller
kubectl get svc -n ingress-nginx
# NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
# ingress-nginx-controller LoadBalancer 10.96.89.123 10.0.0.211 80:30081/TCP,443:30080/TCP
DNS
All ingress resources use domain: ssdk8s.xyz
Example Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-app
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
ingressClassName: nginx
tls:
- hosts:
- app.ssdk8s.xyz
secretName: app-tls
rules:
- host: app.ssdk8s.xyz
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
Ports
| Port | Service |
|---|---|
| 80 | HTTP |
| 443 | HTTPS |
| 8443 | Admission Webhook |
Metrics
Prometheus metrics enabled via ServiceMonitor:
- Endpoint:
ingress-nginx-controller-metrics:10254/metrics