0Pricing
DevOps Bootcamp · Lektion

Service-Typen: ClusterIP, NodePort, LoadBalancer

Lernen Sie die verschiedenen Möglichkeiten kennen, Services innerhalb und außerhalb Ihres Kubernetes-Clusters zugänglich zu machen.

Service-Typen: ClusterIP, NodePort, LoadBalancer 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.

Anforderungen an die Service-Exposition

In Kubernetes sind Pods kurzlebig und haben dynamische IP-Adressen. Services ermöglichen einen stabilen Netzwerkzugriff auf Ihre Anwendungen. Doch wie machen Sie diese zugänglich?

Je nachdem, ob und wie Ihre Anwendung innerhalb oder außerhalb Ihres Clusters erreichbar sein soll, bietet Kubernetes verschiedene Service-Typen. Sehen wir uns die drei wichtigsten an!

ClusterIP: Interner Zugriff

ClusterIP ist der standardmäßige Service-Typ. Er weist Ihrem Service eine stabile interne IP-Adresse zu, die nur innerhalb des Kubernetes-Clusters erreichbar ist.

  • Pods können andere Pods über diese ClusterIPs und den Namen des Service erreichen.
  • Dieser Typ eignet sich ideal für Backend-Services, die keinen direkten externen Zugriff benötigen.
  • Betrachten Sie ihn als internen Load Balancer für Ihre Pods.

ClusterIP-Service-YAML

So definieren Sie einen Service vom Typ ClusterIP. Beachten Sie das Feld type: ClusterIP, das optional ist, da dies der Standardwert ist.

apiVersion: v1
kind: Service
metadata:
  name: my-internal-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: ClusterIP

Auf ClusterIP-Services zugreifen

Nach der Bereitstellung weist Kubernetes diesem Service automatisch eine eindeutige interne IP-Adresse (die ClusterIP) zu. Andere Pods können anschließend den Namen des Service (z. B. my-internal-service) oder seine IP-Adresse verwenden, um eine Verbindung herzustellen.

Der DNS-Service von Kubernetes löst den Namen des Service in seine ClusterIP auf und ermöglicht so eine einfache und zuverlässige interne Kommunikation.

NodePort: Externer Zugriff

Was ist, wenn Sie außerhalb des Clusters auf Ihre Anwendung zugreifen müssen? Hier kommt NodePort ins Spiel.

Ein NodePort-Service macht Ihre Anwendung über einen statischen Port an der IP-Adresse jedes Nodes im Cluster zugänglich. Jeder Datenverkehr an NodeIP:NodePort wird an Ihren Service weitergeleitet.

  • Nützlich für Entwicklungsumgebungen und kleine Bereitstellungen.
  • Der NodePort liegt normalerweise im Bereich 30000–32767.

NodePort-Service-YAML

Um einen NodePort-Service zu erstellen, setzen Sie explizit type: NodePort. Wenn Sie keinen Port angeben, wählt Kubernetes automatisch einen verfügbaren Port aus dem NodePort-Bereich aus.

apiVersion: v1
kind: Service
metadata:
  name: my-nodeport-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
      nodePort: 30080 # Optional: K8s picks if omitted
  type: NodePort

Über NodePort verbinden

Nach der Bereitstellung eines NodePort-Service können Sie von außerhalb des Clusters über <AnyNodeIP>:<NodePort> auf Ihre Anwendung zugreifen.

Wenn die IP-Adresse eines Nodes beispielsweise 192.168.1.100 und der zugewiesene NodePort 30080 lautet, erreichen Sie Ihre Anwendung unter http://192.168.1.100:30080.

LoadBalancer: Cloud-Integration

Für Produktionsumgebungen bei Cloud-Anbietern (AWS, GCP, Azure) wird häufig der Service-Typ LoadBalancer bevorzugt. Er stellt automatisch einen externen Cloud-Load-Balancer bereit.

Dieser Load Balancer erhält eine öffentliche IP-Adresse und verteilt den externen Datenverkehr auf die Pods Ihres Service. Die gesamte komplexe Weiterleitung wird für Sie übernommen.

LoadBalancer-Service-YAML

Das Definieren eines LoadBalancer-Service ist unkompliziert. Ihr Cloud-Anbieter übernimmt die Bereitstellung des externen Load Balancers.

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

Externer Zugriff mit LoadBalancer

Nach der Bereitstellung erstellt Ihr Cloud-Anbieter einen dedizierten Load Balancer und weist ihm eine externe IP-Adresse oder einen Hostnamen zu. Anschließend können Sie über diesen öffentlichen Endpunkt auf Ihre Anwendung zugreifen.

Damit erhalten Sie eine robuste, skalierbare und hochverfügbare Möglichkeit, Ihre Services im Internet bereitzustellen.

Schnelltest: Service-Typen

Welche Kubernetes-Service-Typen ermöglichen einen direkten externen Zugriff auf Ihre Anwendung von außerhalb des Clusters?

Zusammenfassung: Ihren Service auswählen

Sie haben die drei wichtigsten Kubernetes-Service-Typen kennengelernt:

  • ClusterIP: Für den ausschließlich internen Zugriff innerhalb des Clusters.
  • NodePort: Stellt Services über einen statischen Port an der IP-Adresse jedes Nodes bereit und ermöglicht so externen Zugriff.
  • LoadBalancer: Integriert Cloud-Anbieter, um einen externen Load Balancer mit einer öffentlichen IP-Adresse bereitzustellen.

Wählen Sie den passenden Typ anhand der Anforderungen an die Erreichbarkeit Ihrer Anwendung und Ihrer Bereitstellungsumgebung aus!

Häufig gestellte Fragen

Ist die Lektion „Service-Typen: ClusterIP, NodePort, LoadBalancer“ kostenlos?

Ja — der vollständige Text von „Service-Typen: ClusterIP, NodePort, LoadBalancer“ 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 „Service-Typen: ClusterIP, NodePort, LoadBalancer“?

Lernen Sie die verschiedenen Möglichkeiten kennen, Services innerhalb und außerhalb Ihres Kubernetes-Clusters zugänglich zu machen. 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 „Service-Typen: ClusterIP, NodePort, LoadBalancer“?

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. Apps mit Services zugänglich machen
  2. Service-Typen: ClusterIP, NodePort, LoadBalancer
  3. Ingress für externen Zugriff
  4. DNS und Service Discovery
← Zurück zu DevOps Bootcamp