DevOps-bootcamp · 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 DevOps-bootcamp-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 DevOps-bootcamp. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus DevOps-bootcamp 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 DevOps-bootcamp 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
142
Lessen
568

Veelgestelde vragen

Is de les “Services voor netwerktoegang” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad DevOps-bootcamp, 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 DevOps-bootcamp 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 DevOps-bootcamp 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 DevOps-bootcamp te beginnen?

Ervaring vooraf is niet nodig. DevOps-bootcamp 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 DevOps-bootcamp?

Ja. Elke les over DevOps-bootcamp 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 DevOps-bootcamp