Sobes.tech
Junior

Wat zijn routes in Kubernetes en waar worden ze voor gebruikt?

sobes.tech AI

Antwoord van AI

Routes, of Ingress Routes, in Kubernetes, zijn een manier om externe toegang tot services binnen de cluster te bieden. Ze maken het beheer van binnenkomend verkeer mogelijk, dat wordt geleid naar de juiste services volgens door de gebruiker gedefinieerde regels.

Belangrijkste doelen van het gebruik van routes:

  • Externe toegang bieden: Maakt applicaties toegankelijk vanaf buiten de cluster.
  • Load balancing: Verdeelt het binnenkomende verkeer over meerdere service-voorbeelden.
  • SSL/TLS-terminatie: Verwerkt HTTPS-verbindingen op het niveau van Ingress, ontlast de services.
  • Virtueel hosten: Stelt je in staat om verkeer te sturen naar verschillende services op basis van de hostnaam in het verzoek.
  • Routing op basis van pad: Stuurt verkeer naar verschillende services afhankelijk van het URL-pad in het verzoek.

De typische structuur van een routeregels (in het Ingress-manifest) kan er zo uitzien:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: voorbeeld-ingress
spec:
  rules:
  - host: voorbeeld.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service
            port:
              number: 80
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: api-service
            port:
              number: 8080

In dit voorbeeld wordt het verkeer naar voorbeeld.com zonder padvermelding doorgestuurd naar de service my-service (poort 80), en verkeer naar voorbeeld.com/api wordt doorgestuurd naar de service api-service (poort 8080).

Voor het laten werken van Ingress is een Ingress Controller nodig, die fungeert als een reverse proxy en de regels implementeert die in de Ingress-resources zijn gedefinieerd. Populaire Ingress-controllers zijn onder andere Nginx Ingress Controller, Ambassador, Traefik.