Ce face Obiectul Ingress
În loc să plătești câte un Service de tip LoadBalancer pentru fiecare microserviciu, un obiect Ingress îți permite să expui mai multe servicii HTTP/HTTPS în spatele unui singur punct de intrare, rutând cererile după numele de domeniu (host: api.exemplu.ro) și după calea URL (path: /v1). Tot aici configurezi și certificatele HTTPS (TLS).
Cerință esențială: un obiect Ingress este doar o listă de reguli; el nu face nimic singur dacă în cluster nu rulează un Ingress Controller (de exemplu ingress-nginx, Traefik, HAProxy, Cilium sau AWS ALB Controller). Câmpul spec.ingressClassName indică ce controller trebuie să preia regulile.
Împreună cu cert-manager, o simplă adnotare pe Ingress poate obține și reînnoi automat certificate TLS gratuite de la Let’s Encrypt, salvate într-un Secret de tip kubernetes.io/tls.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
spec.ingressClassName |
Numele clasei de Ingress Controller (de ex. nginx sau traefik). |
spec.tls[].hosts / secretName |
Domeniile acoperite de HTTPS și numele Secret-ului care conține tls.crt și tls.key. |
spec.rules[].host |
Domeniul HTTP pentru care se aplică regulile (ex. magazin.exemplu.ro). |
http.paths[].pathType |
Prefix (potrivește /api și /api/v1) sau Exact (doar calea exactă). |
http.paths[].backend.service |
Service-ul intern și portul către care este trimisă cererea. |
Exemple
Exemplul 1: Manifest YAML pentru un Ingress HTTPS cu două servicii
Cererile către /api merg la Service-ul api, iar restul (/) către frontend.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: shop-ingress
namespace: shop
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
ingressClassName: nginx
tls:
- hosts:
- magazin.exemplu.ro
secretName: magazin-tls
rules:
- host: magazin.exemplu.ro
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: api
port:
number: 80
- path: /
pathType: Prefix
backend:
service:
name: frontend
port:
number: 80
Ieșire în terminal
ingress.networking.k8s.io/shop-ingress created
Exemplul 2: Verificarea adresei IP externe alocate de Ingress Controller
kubectl get ingress -n shop
Ieșire în terminal
NAME CLASS HOSTS ADDRESS PORTS AGE
shop-ingress nginx magazin.exemplu.ro 203.0.113.45 80, 443 3m
Greșeli frecvente
- Coloana
ADDRESSdinkubectl get ingressrămâne goală: fie nu ai instalat niciun Ingress Controller în cluster, fie lipseștespec.ingressClassName. - Ingress-ul și Service-ul/Secret-ul TLS către care pointează trebuie să fie în același namespace.
Comenzi înrudite
Obiectul Service: Oferă o adresă IP stabilă, un nume DNS intern și load-balancing către un grup de Pod-uri.ConfigMap și Secret: Separă configurația și datele sensibile (parole, tokenuri, chei TLS) de imaginea containerului.kubectl describe: Afișează detaliile complete ale unei resurse, inclusiv evenimentele recente asociate.
Întrebări & Exemple de Cod:
Obiectul IngressAi o nelămurire despre utilizarea comenzii
Obiectul Ingresssau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.