82 lines
1.9 KiB
Markdown
82 lines
1.9 KiB
Markdown
# 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: <base64 encoded cert>
|
|
tls.key: <base64 encoded key>
|
|
type: kubernetes.io/tls
|
|
``` |