What Is Ingress?
Ingress is a Kubernetes resource that manages external HTTP and HTTPS access to services inside the cluster. An Ingress Controller processes Ingress rules and routes traffic accordingly on your Breeze.
Install Nginx Ingress Controller
Using Helm:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install ingress-nginx ingress-nginx/ingress-nginx \
--set controller.service.type=NodePort \
--set controller.service.nodePorts.http=30080 \
--set controller.service.nodePorts.https=30443Verify Installation
kubectl get pods -n default -l app.kubernetes.io/name=ingress-nginx
kubectl get svc ingress-nginx-controllerCreate an Ingress Resource
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
rules:
- host: app.yourdomain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web-app-svc
port:
number: 80kubectl apply -f ingress.yaml
kubectl get ingressMultiple Hosts
You can route different domains to different services:
spec:
rules:
- host: app.yourdomain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app-svc
port:
number: 80
- host: api.yourdomain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: api-svc
port:
number: 8080Useful Annotations
nginx.ingress.kubernetes.io/ssl-redirect: "true"— force HTTPSnginx.ingress.kubernetes.io/proxy-body-size: "50m"— increase upload limitnginx.ingress.kubernetes.io/rate-limit: "10"— rate limit requests