kubernetes-bootstrapping/05-ingress-controller-nginx/README.md
2024-02-18 17:59:20 -07:00

2.1 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
  annotations:
    cert-manager.io/issuer: letsencrypt
spec:
  ingressClassName: nginx
  rules:
  - host: mandelmap.home.stevenpolley.net
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: mandelmapper
            port:
              number: 6161
  tls:
    - hosts:
      - mandelmap.home.stevenpolley.net
      secretName: mandelmap-cert
---
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
  cert-manager.io/issuer: letsencrypt
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, this will be created by cert-manager
apiVersion: v1
kind: Secret
metadata:
  name: example-tls
data:
  tls.crt: <base64 encoded cert>
  tls.key: <base64 encoded key>
type: kubernetes.io/tls