DevOps-bootcamp · Lektion

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.

Lektion 4 av 413 steg

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-nginx

En 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: 80

Vä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: 8080

Sö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: 80

TLS-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-tls

Annotations 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: nginx

Inspektera Ingress

Kontrollera reglerna och den tilldelade adressen med kubectl get ingress och använd describe för händelser.

kubectl describe ingress web-ingress

Det 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
  • ingressClassName väljer controller

En IP-adress, många Services och smart routning.

Gratis att börja

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

  1. Deployments för tillståndslösa appar
  2. Services för nätverksåtkomst
  3. ConfigMaps och Secrets
  4. Ingress och extern routing
← Tillbaka till DevOps-bootcamp