Sobes.tech
Junior

Czym są trasy w Kubernetes i do czego służą?

sobes.tech AI

Odpowiedź od AI

Trasy, czyli Ingress Routes, w Kubernetes, to sposób na zapewnienie zewnętrznego dostępu do usług wewnątrz klastra. Umożliwiają zarządzanie ruchem przychodzącym, kierując go do odpowiednich usług zgodnie z regułami ustalonymi przez użytkownika.

Główne cele korzystania z tras:

  • Zapewnienie dostępu zewnętrznego: Umożliwiają dostęp do aplikacji spoza klastra.
  • Równoważenie obciążenia: Rozkładają ruch przychodzący pomiędzy kilka instancji usług.
  • Terminowanie SSL/TLS: Obsługują połączenia HTTPS na poziomie Ingress, odciążając usługi.
  • Wirtualny hosting: Pozwalają kierować ruch do różnych usług w zależności od nazwy hosta w żądaniu.
  • Routing na podstawie ścieżki: Kierują ruch do różnych usług w zależności od ścieżki URL w żądaniu.

Typowa struktura reguły routingu (w manifeście Ingress) może wyglądać tak:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: przyklad-ingress
spec:
  rules:
  - host: przyklad.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

W tym przykładzie, ruch na przyklad.com bez określenia ścieżki kierowany jest do serwisu my-service (port 80), a ruch na przyklad.com/api do serwisu api-service (port 8080).

Aby Ingress działał, potrzebny jest kontroler Ingress, który działa jako odwrotny proxy i realizuje reguły zdefiniowane w zasobach Ingress. Popularne kontrolery Ingress to Nginx Ingress Controller, Ambassador, Traefik.