0Pricing
DevOps Bootcamp · Lektion

Services für den Netzwerkzugriff

Machen Sie Ihre Anwendungen innerhalb und außerhalb des Clusters über verschiedene Kubernetes-Service-Typen zugänglich.

Services für den Netzwerkzugriff ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Was ist ein Kubernetes-Service?

In Kubernetes sind Pods die kleinsten bereitstellbaren Einheiten. Sie sind für eine kurzlebige Existenz ausgelegt. Das bedeutet, dass sie jederzeit erstellt, gelöscht oder ersetzt werden können und dabei häufig neue IP-Adressen erhalten.

Diese dynamische Eigenschaft erschwert es anderen Anwendungen, sie zuverlässig zu finden und mit ihnen zu kommunizieren. Hier kommen Services ins Spiel!

Services für den Netzwerkzugriff — Illustration 1

Stabilen Netzwerkzugriff bereitstellen

Ein Kubernetes-Service fungiert als stabiler Netzwerkendpunkt für eine Gruppe von Pods. Stellen Sie ihn sich als dauerhafte Adresse vor, die sich nicht ändert, selbst wenn sich die dahinterliegenden Pods ändern.

  • Services stellen eine konsistente IP-Adresse und einen DNS-Namen bereit.
  • Sie können den Datenverkehr auf mehrere Pods verteilen.
  • Sie gewährleisten eine kontinuierliche Verfügbarkeit, während Pods skaliert oder neu gestartet werden.

Pods mit Services verbinden

Wie weiß ein Service, an welche Pods er den Datenverkehr weiterleiten soll? Er verwendet Labels und Selectoren.

Beim Erstellen von Pods weisen Sie ihnen Labels zu (Schlüssel-Wert-Paare wie app: my-app). Ein Service legt anschließend einen Selector fest, der zu diesen Labels passt, und erstellt so eine dynamische Verbindung.

Interner Zugriff mit ClusterIP

ClusterIP ist der Standard und der am häufigsten verwendete Service-Typ. Er weist innerhalb des Kubernetes-Clusters eine stabile interne IP-Adresse zu. Diese IP-Adresse ist nur von anderen Pods oder Nodes innerhalb des Clusters erreichbar.

Das eignet sich ideal für Backend-Services (wie eine Datenbank oder eine API), die nur mit anderen Services innerhalb Ihrer Anwendung kommunizieren müssen.

Einen ClusterIP-Service definieren

Hier sehen Sie eine einfache YAML-Definition für einen ClusterIP-Service. Beachten Sie den selector, der zum Label app: my-backend passt, sowie die Zuordnung von port zu targetPort.

apiVersion: v1
kind: Service
metadata:
  name: my-backend-service
spec:
  selector:
    app: my-backend
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080 # Port your application listens on
  type: ClusterIP

Externer Zugriff mit NodePort

Ein NodePort-Service stellt Ihre Anwendung über einen statischen Port an der IP-Adresse jedes Nodes bereit. Dadurch ist Ihr Service von außerhalb des Clusters über die IP-Adresse eines beliebigen Nodes und den angegebenen Port erreichbar.

Der Wert von nodePort liegt normalerweise im Bereich von 30000 bis 32767. Das ist für einfachen externen Zugriff oder Entwicklungsumgebungen nützlich.

Einen NodePort-Service definieren

Um Ihren Service über einen NodePort extern bereitzustellen, setzen Sie type: NodePort. Sie können optional einen nodePort angeben. Andernfalls wählt Kubernetes einen für Sie aus.

apiVersion: v1
kind: Service
metadata:
  name: my-frontend-service
spec:
  selector:
    app: my-frontend
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80 # Port your application listens on
      nodePort: 30080 # Optional: specific port on the Node
  type: NodePort

Cloud-Load-Balancer

Der Service-Typ LoadBalancer ist für Cloud-Umgebungen vorgesehen. Wenn Sie einen Service dieses Typs erstellen, stellt Ihr Cloud-Anbieter (wie AWS, GCP oder Azure) automatisch einen externen Load-Balancer bereit.

Dieser Load-Balancer erhält eine öffentliche IP-Adresse und leitet externen Datenverkehr direkt an Ihre Pods weiter, häufig mit erweiterten Funktionen wie SSL-Terminierung.

Einen LoadBalancer-Service definieren

Für öffentlich zugängliche Anwendungen in einem Kubernetes-Cluster in der Cloud ist LoadBalancer die erste Wahl. Dadurch wird die Verwaltung des externen Zugriffs erheblich vereinfacht.

apiVersion: v1
kind: Service
metadata:
  name: my-web-app-lb
spec:
  selector:
    app: my-web-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer

Den richtigen Service auswählen

Ihr Team stellt eine neue Anwendung in Kubernetes bereit. Berücksichtigen Sie die folgenden Szenarien:

  • Eine Backend-API, auf die nur andere Services innerhalb des Clusters zugreifen müssen.
  • Ein Frontend-Webserver, der aus dem Internet erreichbar sein muss und den Sie bei einem Cloud-Anbieter (AWS, GCP oder Azure) bereitstellen.

Welcher Service-Typ eignet sich am besten für den Frontend-Webserver?

Rückblick: Services für den Netzwerkzugriff

Wir haben gelernt, dass Kubernetes-Services stabilen Netzwerkzugriff auf dynamische Pods ermöglichen. Sie sind unverzichtbar, damit Ihre Anwendungen zuverlässig miteinander kommunizieren können.

  • ClusterIP: Nur für die interne Kommunikation innerhalb des Clusters.
  • NodePort: Stellt einen Service über einen statischen Port an der IP-Adresse jedes Nodes bereit und ermöglicht in bestimmten Anwendungsfällen den externen Zugriff.
  • LoadBalancer: Integriert sich in Cloud-Anbieter, um für den öffentlichen Zugriff einen externen Load-Balancer bereitzustellen.

Die Wahl des richtigen Service-Typs ist entscheidend dafür, wie Ihre Anwendungen nach außen bereitgestellt werden.

Häufig gestellte Fragen

Ist die Lektion „Services für den Netzwerkzugriff“ kostenlos?

Ja — der vollständige Text von „Services für den Netzwerkzugriff“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Services für den Netzwerkzugriff“?

Machen Sie Ihre Anwendungen innerhalb und außerhalb des Clusters über verschiedene Kubernetes-Service-Typen zugänglich. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um DevOps Bootcamp zu starten?

Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Services für den Netzwerkzugriff“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?

Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Deployments für zustandslose Apps
  2. Services für den Netzwerkzugriff
  3. ConfigMaps und Secrets
  4. Ingress und externes Routing
← Zurück zu DevOps Bootcamp