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.