Lektion 6: Services und Networking
Mache deine Anwendungen erreichbar mit Kubernetes Services
30 min
Kubernetes Services
Services ermöglichen die Netzwerkkommunikation zu Pods. Da Pods kurzlebig sind und ihre IP-Adressen sich ändern können, bieten Services eine stabile Schnittstelle.
Service-Typen
| Typ | Beschreibung | Anwendungsfall |
|---|---|---|
| ClusterIP | Nur intern erreichbar (Standard) | Interne Microservices |
| NodePort | Auf jedem Node unter einem Port erreichbar | Entwicklung, Tests |
| LoadBalancer | Externer Load Balancer (Cloud) | Produktions-Webapps |
| ExternalName | DNS-CNAME zu externem Service | Legacy-Integration |
ClusterIP Service erstellen
YAML
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIPNodePort Service
YAML
apiVersion: v1
kind: Service
metadata:
name: nginx-nodeport
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30080
type: NodePortLoadBalancer Service
YAML
apiVersion: v1
kind: Service
metadata:
name: nginx-lb
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancerServices verwalten
BASH
# Services anzeigen
kubectl get services
# Service-Details
kubectl describe service nginx-service
# Service testen (innerhalb des Clusters)
kubectl run test --image=busybox -it --rm -- wget -qO- nginx-service
# Mit Minikube auf Service zugreifen
minikube service nginx-nodeportPraktische Übung
- Erstelle ein Deployment mit 3 nginx Pods
- Erstelle einen ClusterIP Service
- Teste die Erreichbarkeit von innerhalb des Clusters
- Erstelle einen NodePort Service
- Greife von außen auf die Anwendung zu
Nächste Lektion: ConfigMaps und Secrets