kubernetes-bootstrapping/05-ingress-controller-nginx/README.md

1.9 KiB

05 | Ingress Controller = NGINX

https://kubernetes.github.io/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.

helm upgrade --install ingress-nginx ingress-nginx   --repo https://kubernetes.github.io/ingress-nginx   --namespace ingress-nginx --create-namespace -f values.yaml

Example usage:

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