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

TypBeschreibungAnwendungsfall
ClusterIPNur intern erreichbar (Standard)Interne Microservices
NodePortAuf jedem Node unter einem Port erreichbarEntwicklung, Tests
LoadBalancerExterner Load Balancer (Cloud)Produktions-Webapps
ExternalNameDNS-CNAME zu externem ServiceLegacy-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: ClusterIP
Click to expand and view more

NodePort Service

YAML
apiVersion: v1
kind: Service
metadata:
  name: nginx-nodeport
spec:
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 30080
  type: NodePort
Click to expand and view more

LoadBalancer Service

YAML
apiVersion: v1
kind: Service
metadata:
  name: nginx-lb
spec:
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  type: LoadBalancer
Click to expand and view more

Services 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-nodeport
Click to expand and view more

Praktische Übung

  1. Erstelle ein Deployment mit 3 nginx Pods
  2. Erstelle einen ClusterIP Service
  3. Teste die Erreichbarkeit von innerhalb des Clusters
  4. Erstelle einen NodePort Service
  5. Greife von außen auf die Anwendung zu

Nächste Lektion: ConfigMaps und Secrets

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut