# 05 | Ingress Controller = NGINX [https://kubernetes.github.io/ingress-nginx/](https://kubernetes.github.io/ingress-nginx/) [https://github.com/kubernetes/ingress-nginx](https://github.com/kubernetes/ingress-nginx) The ingress controller provides external access to services in the cluster by acting as a reverse proxy. In this case, I've selected nginx which is simple to configure, and very fast. It does not have as many fancy features as some other options though. ```bash helm upgrade --install ingress-nginx ingress-nginx --repo https://kubernetes.github.io/ingress-nginx --namespace ingress-nginx --create-namespace -f values.yaml ``` Example usage: ```yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-mandelmapper spec: ingressClassName: nginx rules: - host: mandelmap.home.stevenpolley.net http: paths: - path: / pathType: Prefix backend: service: name: mandelmapper port: number: 6161 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-myservicea spec: ingressClassName: nginx rules: - host: myservicea.foo.org http: paths: - path: / backend: service: name: myservicea port: number: 8080 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-myserviceb spec: ingressClassName: nginx rules: - host: myserviceb.foo.org http: paths: - path: / backend: service: name: myserviceb port: number: 8443 tls: - hosts: - myserviceb.foo.org secretName: example-tls --- # A secret must also be provided, likely by a cert-manager of some kind apiVersion: v1 kind: Secret metadata: name: example-tls data: tls.crt: tls.key: type: kubernetes.io/tls ```