ClusterIP ·
NodePort ·
LoadBalancer ·
Ingress ·
TLS ·
kubectl
Services und Ingress sind die zentralen Komponenten für den Netzwerkzugriff auf Pods in Kubernetes. Sie ermöglichen die Kommunikation innerhalb des Clusters und von außen.
ClusterIP ist der Standard-Service-Typ. Er macht den Service nur innerhalb des Kubernetes-Clusters erreichbar – ideal für die Kommunikation zwischen Services (z.B. App ↔ Datenbank).
NodePort macht den Service auf einem bestimmten Port (30000-32767) auf jedem Node des Clusters erreichbar. Ideal für Entwicklung und lokale Tests.
LoadBalancer integriert sich mit Cloud-Providern (AWS, GCP, Azure) und erstellt automatisch einen externen LoadBalancer mit einer öffentlichen IP-Adresse.
Ingress ermöglicht HTTP/HTTPS-Routing mit virtuellen Hosts, Pfadbasiertem Routing und TLS-Terminierung. Ein Ingress-Controller (z.B. NGINX) ist erforderlich.
TLS ermöglicht HTTPS-Terminierung am Ingress-Controller. Das Zertifikat wird als Kubernetes Secret gespeichert.
kubectl ist das Kommandozeilen-Tool für die Kubernetes-Verwaltung. Diese Befehle sind für die Arbeit mit Services und Ingress unverzichtbar.
| Befehl | Beschreibung |
|---|---|
| kubectl get svc | Alle Services anzeigen |
| kubectl get svc -A | Services in allen Namespaces |
| kubectl get ingress | Alle Ingress-Ressourcen anzeigen |
| kubectl describe svc <name> | Detailinformationen eines Services |
| kubectl describe ingress <name> | Detailinformationen eines Ingress |
| kubectl expose deployment <name> --type=NodePort --port=80 | Service aus Deployment erstellen |
| kubectl delete svc <name> | Service löschen |
| kubectl delete ingress <name> | Ingress löschen |
| kubectl port-forward svc/<name> 8080:80 | Port-Forwarding für lokalen Zugriff |
kubectl port-forward ist perfekt für Debugging und lokale Tests – Sie können auf Services zugreifen, ohne sie extern zu veröffentlichen.
ClusterIP
NodePort
LoadBalancer
Ingress
TLS
kubectl
kubectl get svc ·
kubectl expose deployment web --type=LoadBalancer ·
kubectl describe ingress app-ingress