Lab 21: Ingress auf Minikube¶
Dieses Lab demonstriert, wie man einen Ingress verwendet, um HTTP-Traffic an einen Service zu routen.
Voraussetzungen¶
Aktiviere das Ingress-Addon in Minikube:
minikube addons enable ingress
Anwendung starten¶
01-deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-ingress-demo
labels:
app: nginx-ingress
spec:
replicas: 2
selector:
matchLabels:
app: nginx-ingress
template:
metadata:
labels:
app: nginx-ingress
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 10
periodSeconds: 20
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "200m"
memory: "256Mi"
02-service.yaml:
apiVersion: v1
kind: Service
metadata:
name: nginx-ingress-svc
spec:
selector:
app: nginx-ingress
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
03-ingress.yaml:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-ingress
annotations:
# Dies weist den Standard NGINX Controller an (wichtig für Minikube)
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
rules:
- host: nginx.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx-ingress-svc
port:
number: 80
Wende alle YAML-Dateien in diesem Ordner an:
kubectl apply -f .
Zugriff testen¶
Da wir einen Hostnamen (nginx.example.com) definiert haben, müssen wir sicherstellen, dass dieser auf die IP des
Ingress-Controllers aufgelöst wird.
Methode A: Minikube Tunnel (Empfohlen für Mac/Windows)¶
Starte den Tunnel in einem separaten Terminal. Er sorgt dafür, dass Services vom Typ LoadBalancer (den der Ingress Controller nutzt) eine IP bekommen und routet Traffic.
minikube tunnel
Füge dann den Eintrag zu deiner /etc/hosts hinzu (sudo benötigt), damit nginx.example.com auf 127.0.0.1 zeigt,
ODER teste direkt mit curl:
curl --resolve nginx.example.com:80:127.0.0.1 http://nginx.example.com
Methode B: Minikube IP (Linux)¶
echo "$(minikube ip) nginx.example.com" | sudo tee -a /etc/hosts
curl http://nginx.example.com