DevOps-bootcamp · Les

Apps toegankelijk maken met Services

Begrijp de rol van Services bij het bieden van stabiele netwerkeindpunten voor Pods.

Les 1 van 412 stappen

Apps toegankelijk maken met Services is een gratis DevOps-bootcamp-les op CoddyKit. Dit is les 1 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.

Pods: vandaag hier, morgen verdwenen

In Kubernetes zijn Pods de kleinste eenheden die je kunt implementeren. Ze zijn bedoeld als tijdelijk en kunnen op elk moment door Kubernetes worden gemaakt, vernietigd of verplaatst.

Deze flexibiliteit is goed voor veerkracht, maar zorgt voor een uitdaging: hoe kunnen andere applicaties deze steeds veranderende Pods betrouwbaar vinden en ermee communiceren?

Het probleem van het bewegende doelwit

Elke Pod krijgt een eigen IP-adres. Wanneer een Pod opnieuw wordt gestart of wordt geschaald, krijgt deze vaak een nieuw IP-adres. Rechtstreeks verbinding maken met het IP-adres van een Pod is alsof je een bewegend doel probeert te raken!

Stel je een webapplicatie met meerdere Pods voor. Als één Pod opnieuw wordt gestart, verandert het IP-adres ervan en worden verbindingen vanuit andere services of gebruikers verbroken.

Services schieten te hulp!

Daar komen Kubernetes Services van pas! Een Service biedt een stabiel, vast netwerkeindpunt voor een set Pods.

Zie het als een permanent adres voor je applicatie, zelfs als de Pods erachter voortdurend hun afzonderlijke adressen wijzigen.

Een stabiele gateway voor Pods

Een Service fungeert als een abstractielaag boven een groep Pods. De Service geeft deze groep één consistent IP-adres en één DNS-naam.

  • Andere applicaties gebruiken dit stabiele IP-adres of deze stabiele naam van de Service.
  • De Service routeert het verkeer vervolgens naar de gezonde Pods die de Service beheert.
  • Hierdoor zijn clients niet gekoppeld aan afzonderlijke IP-adressen van Pods.

Services met Pods verbinden

Hoe weet een Service naar welke Pods het verkeer moet worden gerouteerd? Daarvoor gebruikt de Service labels en selectors!

Wanneer je een Service definieert, geef je een selector op. Elke Pod die overeenkomt met deze labels wordt automatisch onderdeel van de groep van die Service.

Door deze dynamische koppeling worden nieuwe Pods automatisch toegevoegd en ongezonde Pods verwijderd.

Netwerkverkeer sturen

Services beheren hoe netwerkverkeer stroomt. Ze definiëren poorten om binnenkomende aanvragen aan de juiste poorten op je Pods te koppelen.

Belangrijke poortbegrippen:

  • port: de poort waarop de Service zelf luistert.
  • targetPort: de poort op de Pod waarnaar de Service het verkeer doorstuurt.

Een Service-manifest opbouwen

Net als de meeste Kubernetes-resources worden Services gedefinieerd met YAML-bestanden. Bekijk de basisstructuur:

  • apiVersion: v1
  • kind: Service
  • metadata: naam, labels
  • spec: bevat de kerndefinitie, waaronder selector en ports.

Je eerste Service: ClusterIP

Het meest voorkomende type Service voor interne communicatie is ClusterIP. Hiermee wordt de Service beschikbaar gemaakt op een intern IP-adres binnen het cluster.

Hier is een voorbeeld voor een eenvoudige webapplicatie:

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

Je Service implementeren

Zodra je de YAML voor je Service hebt, kun je deze met kubectl in je cluster implementeren, net als Pods of Deployments.

Met deze opdracht geef je Kubernetes de opdracht om de Service te maken op basis van je definitie:

kubectl apply -f service.yaml

Je nieuwe Service gebruiken

Na de implementatie krijgt je Service een stabiel IP-adres en een stabiele DNS-naam binnen het cluster. Andere Pods kunnen je applicatie nu via deze naam bereiken.

Een andere Pod kan bijvoorbeeld verbinding maken met my-web-service:80. De Service zorgt er dan voor dat het verkeer naar de juiste my-webapp-Pods wordt gerouteerd.

Service-controle

Je hebt geleerd hoe Kubernetes Services stabiele netwerktoegang tot dynamische Pods bieden.

Welke van de volgende opties beschrijft het primaire doel van een Kubernetes Service het best?

Samenvatting: stabiele verbindingen

Goed gedaan! In deze les hebben we Kubernetes Services verkend.

  • Pods zijn tijdelijk en hebben dynamische IP-adressen.
  • Services bieden stabiele netwerkeindpunten voor Pods.
  • Ze gebruiken selectors om doel-Pods te vinden.
  • Services koppelen de externe port aan de interne targetPort.
  • ClusterIP is een veelgebruikt type voor interne communicatie.

Hierna gaan we dieper in op verschillende typen Services en hun toepassingen!

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 “Apps toegankelijk maken met Services” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad DevOps-bootcamp, waaronder “Apps toegankelijk maken met Services”, 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 “Apps toegankelijk maken met Services”?

Begrijp de rol van Services bij het bieden van stabiele netwerkeindpunten voor Pods. 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 1 van 4.

Hoe lang duurt de les “Apps toegankelijk maken met Services”?

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. Apps toegankelijk maken met Services
  2. Service-typen: ClusterIP, NodePort, LoadBalancer
  3. Ingress voor externe toegang
  4. DNS en servicediscovery
← Terug naar DevOps-bootcamp