Docker en de basis van DevOps · Les

Services voor netwerktoegang

Maak uw applicaties binnen en buiten het cluster toegankelijk met verschillende Kubernetes Service-typen.

Les 2 van 411 stappen

Services voor netwerktoegang is een gratis Docker en de basis van DevOps-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Docker en de basis van DevOps. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Docker en de basis van DevOps bevat in totaal 4 lessen.

Wat is een Kubernetes Service?

In Kubernetes zijn Pods de kleinste implementeerbare eenheden. Ze zijn ontworpen om tijdelijk te zijn: ze kunnen op elk moment worden aangemaakt, verwijderd of vervangen en krijgen daarbij vaak nieuwe IP-adressen.

Door dit dynamische karakter is het voor andere applicaties lastig om ze betrouwbaar te vinden en ermee te communiceren. Daar komen Services om de hoek kijken!

Services voor netwerktoegang — illustratie 1

Stabiele netwerktoegang bieden

Een Kubernetes Service fungeert als een stabiel netwerkeindpunt voor een groep Pods. Zie het als een permanent adres dat niet verandert, zelfs als de Pods erachter dat wel doen.

  • Services bieden een consistent IP-adres en een consistente DNS-naam.
  • Ze kunnen verkeer verdelen over meerdere Pods.
  • Ze zorgen voor voortdurende beschikbaarheid wanneer Pods worden opgeschaald of opnieuw worden gestart.

Pods met Services verbinden

Hoe weet een Service naar welke Pods het verkeer moet routeren? Daarvoor gebruikt de Service labels en selectors.

Wanneer je Pods aanmaakt, geef je ze labels (sleutel-waardeparen zoals app: my-app). Een Service specificeert vervolgens een selector die met deze labels overeenkomt, waardoor een dynamische koppeling ontstaat.

Interne toegang met ClusterIP

ClusterIP is het standaard- en meestgebruikte type Service. Het wijst een stabiel intern IP-adres toe binnen het Kubernetes-cluster. Dit IP-adres is alleen bereikbaar vanaf andere Pods of Nodes binnen het cluster.

Dit is ideaal voor backendservices (zoals een database of API) die alleen met andere services binnen je applicatie hoeven te communiceren.

Een ClusterIP Service definiëren

Hier zie je een eenvoudige YAML-definitie voor een ClusterIP Service. Let op de selector die overeenkomt met het label app: my-backend en hoe port wordt gekoppeld aan 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

Externe toegang met NodePort

Een NodePort Service maakt je applicatie beschikbaar via een vaste poort op het IP-adres van elke Node. Daardoor is je service van buiten het cluster bereikbaar via het IP-adres van een willekeurige Node en de opgegeven poort.

De waarde van nodePort ligt doorgaans tussen 30000 en 32767. Dit is handig voor eenvoudige externe toegang of ontwikkelomgevingen.

Een NodePort Service definiëren

Om je service extern beschikbaar te maken via een NodePort, stel je type: NodePort in. Je kunt optioneel een nodePort opgeven; anders kiest Kubernetes er een voor je.

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

Load balancers in de cloud

Het Service-type LoadBalancer is ontworpen voor cloudomgevingen. Wanneer je dit type Service aanmaakt, stelt je cloudprovider (zoals AWS, GCP of Azure) automatisch een externe load balancer beschikbaar.

Deze load balancer krijgt een openbaar IP-adres en routeert extern verkeer rechtstreeks naar je Pods, vaak met geavanceerde functies zoals SSL-beëindiging.

Een LoadBalancer Service definiëren

Voor publiek toegankelijke applicaties in een Kubernetes-cluster in de cloud is LoadBalancer de aangewezen keuze. Hiermee wordt het beheer van externe toegang veel eenvoudiger.

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

De juiste Service kiezen

Je team implementeert een nieuwe applicatie in Kubernetes. Bekijk de volgende scenario's:

  • Een backend-API die alleen toegankelijk hoeft te zijn voor andere services binnen het cluster.
  • Een frontendwebserver die vanaf het internet bereikbaar moet zijn en die je implementeert bij een cloudprovider (AWS, GCP of Azure).

Welk type Service is het meest geschikt voor de frontendwebserver?

Samenvatting: Services voor netwerktoegang

We hebben geleerd dat Kubernetes Services stabiele netwerktoegang bieden tot dynamische Pods. Ze zijn essentieel om je applicaties betrouwbaar met elkaar te laten communiceren.

  • ClusterIP: alleen voor interne communicatie binnen het cluster.
  • NodePort: maakt een service beschikbaar via een vaste poort op het IP-adres van elke Node en is voor specifieke toepassingen extern toegankelijk.
  • LoadBalancer: integreert met cloudproviders om een externe load balancer beschikbaar te maken voor publieke toegang.

Het juiste Service-type kiezen is essentieel om te bepalen hoe je applicaties beschikbaar worden gemaakt.

Gratis beginnen

Leer Docker en de basis van DevOps met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Services voor netwerktoegang” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Docker en de basis van DevOps, waaronder “Services voor netwerktoegang”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Docker en de basis van DevOps bevat in totaal 4 lessen.

Wat leer ik in “Services voor netwerktoegang”?

Maak uw applicaties binnen en buiten het cluster toegankelijk met verschillende Kubernetes Service-typen. Je oefent met Docker en de basis van DevOps door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Docker en de basis van DevOps te beginnen?

Ervaring vooraf is niet nodig. Docker en de basis van DevOps op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Services voor netwerktoegang”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Docker en de basis van DevOps?

Ja. Elke les over Docker en de basis van DevOps bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Deployments voor stateless apps
  2. Services voor netwerktoegang
  3. ConfigMaps en Secrets
  4. Ingress en externe routing
← Terug naar Docker en de basis van DevOps