Kubernetes default nginx ingress backend

Create the config map that has the HTML file config-map.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: default-backend
  namespace: default
data:
  index.html: |
    <!doctype html>
    <html>
    <head><title>default index file</title></head>
    <body>
      <h1>Hello world from default nginx</h1>
    </body>
    </html>

Create the Deployment deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: default-backend
  namespace: default
spec:
  selector:
    matchLabels:
      app: backend
  template:
    metadata:
      labels:
        app: backend
    spec:
      containers:
      - name: backend
        image: nginx
        ports:
        - containerPort: 80
        volumeMounts:
          - mountPath: /usr/share/nginx/html
            name: html-files
      volumes:
        - name: html-files
          configMap:
            name: default-backend

Create the service service.yaml

apiVersion: v1
kind: Service
metadata:
  name: default-backend
  namespace: default
spec:
  type: ClusterIP
  selector:
    app: backend
  ports:
  - port: 80
    targetPort: 80

Create the ingress to catch all routes ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: default-backend
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  defaultBackend:
    service:
      name: default-backend
      port:
        number: 80

Apply k8s manifests

kubectl apply -f .