Ce sunt rutele în Kubernetes și pentru ce sunt folosite?
sobes.tech AI
Răspuns de la AI
Rutele, sau Rutele Ingress, în Kubernetes, sunt o modalitate de a oferi acces extern la serviciile din interiorul clusterului. Ele permit gestionarea traficului de intrare, direcționându-l către serviciile corespunzătoare în funcție de regulile definite de utilizator.
Obiectivele principale ale utilizării rutelor:
- Oferirea accesului extern: Fac aplicațiile accesibile din afara clusterului.
- Echilibrarea încărcării: Distribuie traficul de intrare între mai multe instanțe de servicii.
- Terminarea SSL/TLS: Procesează conexiunile HTTPS la nivelul Ingress, descărcând serviciile.
- Hosting virtual: Permite direcționarea traficului către diferite servicii în funcție de numele gazdei din solicitare.
- Routing bazat pe cale: Direcționează traficul către diferite servicii în funcție de calea URL din solicitare.
Structura tipică a unei reguli de rutare (în manifestul Ingress) poate arăta astfel:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: exemplu-ingress
spec:
rules:
- host: exemplu.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
În acest exemplu, traficul către exemplu.com fără specificarea unei căi este direcționat către serviciul my-service (port 80), iar traficul către exemplu.com/api este direcționat către serviciul api-service (port 8080).
Pentru ca Ingress să funcționeze, este necesar un Controler Ingress, care acționează ca un proxy invers și implementează regulile definite în resursele Ingress. Controlerele Ingress populare includ Nginx Ingress Controller, Ambassador, Traefik.