DevOps-bootcamp · Lektion

Ingress för extern åtkomst

Konfigurera Ingress för att hantera extern åtkomst till Services med HTTP-/S-routing och lastbalansering.

Lektion 3 av 411 steg

Ingress för extern åtkomst är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 3 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

Vi har utforskat olika Kubernetes Service-typer, som NodePort och LoadBalancer, för att exponera applikationer externt.

Även om de är användbara kan de bli svårhanterliga när kraven på extern åtkomst är komplexa, särskilt när du behöver vara värd för många applikationer eller API:er på en enda IP-adress med specifika dirigeringsregler.

Det är här Ingress kommer in i bilden och erbjuder en kraftfullare och mer flexibel lösning.

Introduktion till Kubernetes Ingress

Ingress är ett Kubernetes-API-objekt som hanterar extern åtkomst till tjänsterna i ett kluster, främst för HTTP- och HTTPS-trafik.

  • Det fungerar som en enda ingångspunkt för externa förfrågningar.
  • Det möjliggör HTTP/S-dirigering baserad på värdnamn eller URL-sökvägar.
  • Det kan även erbjuda funktioner som SSL/TLS-terminering och lastbalansering.

Se Ingress som en intelligent trafikdirigerare som leder webbtrafik till rätt interna Services.

Ingress Controller

En Ingress-resurs består bara av en uppsättning regler; den hanterar inte trafiken direkt. För att Ingress ska fungera behöver du en Ingress Controller som körs i klustret.

Ingress Controller övervakar Ingress-resurser och konfigurerar en extern lastbalanserare (eller reverse proxy) enligt de definierade reglerna.

Populära Ingress Controllers är Nginx, Traefik och molnspecifika alternativ som GCE Ingress för Google Cloud eller AWS Load Balancer Controller.

Så fungerar Ingress-regler

Ingress definierar regler som mappar inkommande externa förfrågningar till specifika backend-Services i klustret. Dessa regler anger vanligtvis:

  • Host: Domännamnet (till exempel www.my-app.com).
  • Path: URL-sökvägen (till exempel /api, /blog).
  • Backend Service: Kubernetes-Service och port som trafiken ska vidarebefordras till.

Ingress Controller utvärderar dessa regler för varje inkommande förfrågan för att avgöra rätt destination.

Skapa en Ingress-YAML

Precis som andra Kubernetes-resurser definieras Ingress med ett YAML-manifest. Här är en grundläggande struktur som visar de viktigaste fälten:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-app-ingress
spec:
  rules:
  - host: myapp.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-web-service
            port:
              number: 80

Enkel sökvägsbaserad Ingress

Vi skapar en Ingress-resurs som dirigerar all trafik för rotsökvägen (/) på myapp.example.com till en Service med namnet my-web-service på port 80.

Se till att du har en Deployment och en Service med namnet my-web-service som körs i klustret innan du tillämpar denna Ingress.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: basic-app-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: myapp.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-web-service
            port:
              number: 80

Distribuera din Ingress

För att distribuera din Ingress-resurs sparar du YAML-innehållet i en fil (till exempel basic-ingress.yaml) och använder kubectl apply:

kubectl apply -f basic-ingress.yaml

Du kan kontrollera statusen för din Ingress med kubectl get ingress. Ingress Controller konfigurerar sedan den externa lastbalanseraren utifrån dessa regler.

För att testa behöver du vanligtvis uppdatera din lokala /etc/hosts-fil (eller DNS) så att myapp.example.com pekar på den externa IP-adressen för din Ingress Controller.

Exempel på värdbaserad dirigering

Ingress passar perfekt för att vara värd för flera applikationer på en enda extern IP-adress genom att använda olika värdnamn. Här dirigeras app1.example.com till service-app1 och app2.example.com till service-app2.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: host-routing-ingress
spec:
  rules:
  - host: app1.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: service-app1
            port:
              number: 80
  - host: app2.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: service-app2
            port:
              number: 80

Flera sökvägar, en värd

Du kan också dirigera olika URL-sökvägar på samma värdnamn till olika backend-tjänster. Detta är idealiskt för mikrotjänstarkitekturer eller olika delar av en och samma applikation.

Förfrågningar till api.example.com/users går till exempel till users-service, medan förfrågningar till api.example.com/products går till products-service.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: path-routing-ingress
spec:
  rules:
  - host: api.example.com
    http:
      paths:
      - path: /users
        pathType: Prefix
        backend:
          service:
            name: users-service
            port:
              number: 80
      - path: /products
        pathType: Prefix
        backend:
          service:
            name: products-service
            port:
              number: 80

Kontroll av Ingress syfte

Vilka av följande är de viktigaste fördelarna med att använda Kubernetes Ingress?

Sammanfattning: Ingress för intelligent dirigering

Bra jobbat! Du har lärt dig om Kubernetes Ingress, en viktig komponent för att hantera hur externa användare interagerar med dina applikationer.

  • Ingress erbjuder flexibel HTTP/S-dirigering baserad på värdnamn och URL-sökvägar.
  • Det kräver en Ingress Controller (som Nginx) för att övervaka Ingress-regler och konfigurera dirigeringen.
  • Det förenklar exponeringen av flera tjänster via en enda extern IP-adress, vilket gör klustret effektivare och enklare att hantera.

Att behärska Ingress är avgörande för att bygga robusta och åtkomliga molnbaserade applikationer!

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 för extern åtkomst” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Ingress för extern åtkomst”, 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 för extern åtkomst”?

Konfigurera Ingress för att hantera extern åtkomst till Services med HTTP-/S-routing och lastbalansering. 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 3 av 4.

Hur lång tid tar lektionen ”Ingress för extern åtkomst”?

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. Exponera appar med Services
  2. Service-typer: ClusterIP, NodePort, LoadBalancer
  3. Ingress för extern åtkomst
  4. DNS och tjänsteidentifiering
← Tillbaka till DevOps-bootcamp