Ingress e routing esterno
Esponga più servizi verso l'esterno tramite un unico punto d'accesso usando le risorse Ingress, il routing per host e percorso e un controller Ingress.
Ingress e routing esterno è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.
Oltre NodePort e LoadBalancer
Un Service può esporre un'app, ma assegnare a ogni app un proprio IP esterno è costoso e difficile da gestire. Ingress fornisce un unico punto di ingresso HTTP intelligente, che instrada il traffico verso molti servizi.
Che cos'è un Ingress?
Un Ingress è un oggetto Kubernetes che descrive regole di routing HTTP/HTTPS: specifica quale host o percorso URL deve essere associato a un determinato Service.
È necessario un controller
L'oggetto Ingress contiene solo le regole. Un Ingress controller (nginx, Traefik, HAProxy) osserva effettivamente queste regole ed esegue il routing. Senza controller, non succede nulla.
kubectl get pods -n ingress-nginxUn Ingress di base
Questo Ingress invia tutto il traffico a un unico Service backend sulla porta 80.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web-ingress
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web
port:
number: 80Routing basato sull'host
Aggiungete un host per instradare il traffico in base al nome di dominio: api.example.com verso un servizio, shop.example.com verso un altro, usando lo stesso IP.
rules:
- host: api.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: api
port:
number: 8080Routing basato sul percorso
In alternativa, instradate il traffico in base al percorso URL all'interno dello stesso host: /api verso il servizio API e / verso il frontend web.
paths:
- path: /api
pathType: Prefix
backend:
service:
name: api
port:
number: 8080
- path: /
pathType: Prefix
backend:
service:
name: web
port:
number: 80Terminazione TLS
Ingress può terminare HTTPS usando un secret TLS, così i vostri servizi ricevono HTTP in chiaro mentre gli utenti usufruiscono della crittografia.
spec:
tls:
- hosts:
- shop.example.com
secretName: shop-tlsLe annotation regolano il comportamento
Le annotation specifiche del controller configurano riscritture, timeout, limiti di frequenza e molto altro. Sono memorizzate nei metadati dell'Ingress.
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /IngressClass
Quando sono presenti più controller, ingressClassName indica a Kubernetes quale deve gestire questo Ingress.
spec:
ingressClassName: nginxIspezionare un Ingress
Verificate le regole e l'indirizzo assegnato con kubectl get ingress e usate describe per visualizzare gli eventi.
kubectl describe ingress web-ingressL'alternativa moderna: Gateway API
Kubernetes si sta evolvendo verso la Gateway API, un successore di Ingress più espressivo. Ingress rimane ampiamente utilizzato ed è il punto di partenza più adatto.
Verifica rapida
Perché è necessario un Ingress controller?
Riepilogo
Ora potete esporre le app in modo ordinato:
- Ingress definisce le regole di routing HTTP; un Ingress controller le applica
- Potete instradare il traffico per host o percorso attraverso un unico punto di ingresso
- Potete terminare TLS e regolare il comportamento con le annotation
ingressClassNameseleziona il controller
Un IP, molti servizi, routing intelligente.
Domande Frequenti
La lezione «Ingress e routing esterno» è gratuita?
Sì — il testo completo di «Ingress e routing esterno» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.
Cosa imparerò in «Ingress e routing esterno»?
Esponga più servizi verso l'esterno tramite un unico punto d'accesso usando le risorse Ingress, il routing per host e percorso e un controller Ingress. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare DevOps Bootcamp?
Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Ingress e routing esterno»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?
Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Deployment per app stateless
- Service per l'accesso di rete
- ConfigMap e Secret
- Ingress e routing esterno