title: “Cluster Setup – Secure Ingress”
date: 2020-12-08T21:56:20
slug: cluster-setup-secure-ingress
Install nginx Ingress:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.41.2/deploy/static/provider/cloud/deploy.yaml
Create an Ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: secure-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /service1
pathType: Prefix
backend:
service:
name: service1
port:
number: 80
- path: /service2
pathType: Prefix
backend:
service:
name: service2
port:
number: 80
Expose two pods:
k expose pod pod1 --port 80 --name service1
k expose pod pod2 --port 80 --name service2
Create Certificate:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes
Create Secret from Certificate:
k create secret tls secure-ingress --cert=cert.pem --key=key.pem
Add TLS to ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: secure-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- https-example.foo.com
secretName: secure-ingress
rules:
- http:
paths:
- path: /service1
pathType: Prefix
backend:
service:
name: service1
port:
number: 80
- path: /service2
pathType: Prefix
backend:
service:
name: service2
port:
number: 80
