Ingress och extern routing
Exponera flera tjänster mot omvärlden via en enda ingångspunkt med Ingress-resurser, routing baserad på värd och sökväg samt en Ingress-controller.
Ingress och extern routing är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Bortom NodePort och LoadBalancer
En Service kan exponera en app, men det blir dyrt och rörigt att ge varje app en egen extern IP-adress. Ingress tillhandahåller en smart HTTP-ingång som dirigerar trafik till många Services.
Vad är en Ingress?
En Ingress är ett Kubernetes-objekt som beskriver routningsregler för HTTP/HTTPS: vilken värd eller URL-sökväg som ska kopplas till vilken Service.
Ni behöver en controller
Ingress-objektet består bara av regler. En Ingress controller (nginx, Traefik, HAProxy) bevakar faktiskt reglerna och utför routningen. Ingen controller, ingen effekt.
kubectl get pods -n ingress-nginxEn grundläggande Ingress
Den här Ingress skickar all trafik till en enda backend-Service på port 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: 80Värdbaserad routning
Lägg till en host för att dirigera efter domännamn – api.example.com till en Service och shop.example.com till en annan, allt på samma IP-adress.
rules:
- host: api.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: api
port:
number: 8080Sökvägsbaserad routning
Dirigera i stället efter URL-sökväg under en enda värd: /api till API-servicen och / till webbfrontend.
paths:
- path: /api
pathType: Prefix
backend:
service:
name: api
port:
number: 8080
- path: /
pathType: Prefix
backend:
service:
name: web
port:
number: 80TLS-terminering
Ingress kan terminera HTTPS med hjälp av en TLS-hemlighet, så att Services tar emot vanlig HTTP medan användarna får kryptering.
spec:
tls:
- hosts:
- shop.example.com
secretName: shop-tlsAnnotations finjusterar beteendet
Annotations som är specifika för controllern konfigurerar omskrivningar, tidsgränser, hastighetsbegränsningar med mera. De finns i Ingress-objektets metadata.
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /IngressClass
När flera controllers finns anger ingressClassName vilken av dem som ska hantera denna Ingress.
spec:
ingressClassName: nginxInspektera Ingress
Kontrollera reglerna och den tilldelade adressen med kubectl get ingress och använd describe för händelser.
kubectl describe ingress web-ingressDet moderna alternativet: Gateway API
Kubernetes utvecklas mot Gateway API, en mer uttrycksfull efterföljare till Ingress. Ingress används fortfarande brett och är rätt utgångspunkt.
Snabbtest
Varför krävs en Ingress controller?
Sammanfattning
Nu kan Ni exponera appar på ett ordnat sätt:
- Ingress definierar routningsregler för HTTP; en Ingress controller verkställer dem
- Dirigera efter host eller path genom en enda ingång
- Terminera TLS och finjustera beteendet med annotations
ingressClassNameväljer controller
En IP-adress, många Services och smart routning.
Lär dig DevOps-bootcamp med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 142
- Lektioner
- 568
Vanliga frågor
Är lektionen ”Ingress och extern routing” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Ingress och extern routing”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Vad lär jag mig i ”Ingress och extern routing”?
Exponera flera tjänster mot omvärlden via en enda ingångspunkt med Ingress-resurser, routing baserad på värd och sökväg samt en Ingress-controller. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?
Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Ingress och extern routing”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?
Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Deployments för tillståndslösa appar
- Services för nätverksåtkomst
- ConfigMaps och Secrets
- Ingress och extern routing