Kubernetes default nginx ingress backend
Posted on 14-Jan-2021
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 .