Grundlæggende Docker og DevOps · Lektion

Services til netværksadgang

Gør Deres applikationer tilgængelige internt og eksternt i clustret ved hjælp af forskellige Kubernetes Service-typer.

Lektion 2 af 411 trin

Services til netværksadgang er en gratis Grundlæggende Docker og DevOps-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlæggende Docker og DevOps, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende Docker og DevOps-kurset indeholder 4 lektioner i alt.

Hvad er en Kubernetes-tjeneste?

I Kubernetes er Pods de mindste enheder, der kan udrulles. De er designet til at være midlertidige, hvilket betyder, at de kan oprettes, slettes eller erstattes når som helst og ofte får nye IP-adresser.

Denne dynamiske egenskab gør det svært for andre applikationer pålideligt at finde og kommunikere med dem. Det er her, Services kommer ind i billedet!

Services til netværksadgang — illustration 1

Stabil netværksadgang

En Kubernetes-tjeneste fungerer som et stabilt netværksslutpunkt for en gruppe Pods. Tænk på den som en permanent adresse, der ikke ændres, selv hvis de Pods, der står bag den, gør.

  • Services giver en ensartet IP-adresse og et DNS-navn.
  • De kan fordele trafik på tværs af flere Pods.
  • De sikrer kontinuerlig tilgængelighed, når Pods skaleres eller genstartes.

Forbindelse mellem Pods og Services

Hvordan ved en Service, hvilke Pods trafikken skal dirigeres til? Den bruger labels og selectors.

Når du opretter Pods, tildeler du dem labels (nøgle-værdi-par som app: my-app). En Service angiver derefter en selector, der matcher disse labels, og dermed oprettes en dynamisk forbindelse.

Intern adgang med ClusterIP

ClusterIP er standardtypen og den mest almindelige type Service. Den tildeler en stabil intern IP-adresse i Kubernetes-klyngen. Denne IP kan kun nås fra andre Pods eller Nodes inde i klyngen.

Den er perfekt til backend-tjenester (som en database eller en API), der kun skal kommunikere med andre tjenester i din applikation.

Definition af en ClusterIP-tjeneste

Her er en enkel YAML-definition af en ClusterIP-tjeneste. Bemærk, at selector matcher labelen app: my-backend, og hvordan port knyttes til targetPort.

apiVersion: v1
kind: Service
metadata:
  name: my-backend-service
spec:
  selector:
    app: my-backend
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080 # Port your application listens on
  type: ClusterIP

Ekstern adgang med NodePort

En NodePort-tjeneste gør din applikation tilgængelig på en statisk port på hver Nodes IP-adresse. Det gør din tjeneste tilgængelig uden for klyngen via en hvilken som helst Nodes IP-adresse og den angivne port.

Værdien for nodePort ligger typisk i intervallet 30000-32767. Den er nyttig til enkel ekstern adgang eller udviklingsmiljøer.

Definition af en NodePort-tjeneste

For at gøre din tjeneste eksternt tilgængelig via en NodePort skal du angive type: NodePort. Du kan valgfrit angive en nodePort, ellers vælger Kubernetes en for dig.

apiVersion: v1
kind: Service
metadata:
  name: my-frontend-service
spec:
  selector:
    app: my-frontend
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80 # Port your application listens on
      nodePort: 30080 # Optional: specific port on the Node
  type: NodePort

Cloud-baserede load balancere

Tjenestetypen LoadBalancer er udviklet til cloudmiljøer. Når du opretter denne type Service, klargør din cloududbyder (som AWS, GCP eller Azure) automatisk en ekstern load balancer.

Denne load balancer får en offentlig IP-adresse og dirigerer ekstern trafik direkte til dine Pods, ofte med avancerede funktioner som SSL-terminering.

Definition af en LoadBalancer-tjeneste

Til offentligt tilgængelige applikationer i en Kubernetes-klynge i skyen er LoadBalancer det oplagte valg. Det forenkler administrationen af ekstern adgang betydeligt.

apiVersion: v1
kind: Service
metadata:
  name: my-web-app-lb
spec:
  selector:
    app: my-web-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer

Vælg den rigtige tjeneste

Dit team udruller en ny applikation til Kubernetes. Overvej følgende scenarier:

  • En backend-API, som kun skal tilgås af andre tjenester i klyngen.
  • En frontend-webserver, som skal være tilgængelig fra internettet, og som du udruller hos en cloududbyder (AWS, GCP eller Azure).

Hvilken type Service er bedst egnet til frontend-webserveren?

Opsummering: Services til netværksadgang

Vi har lært, at Kubernetes-Services giver dynamiske Pods stabil netværksadgang. De er afgørende for, at dine applikationer kan kommunikere pålideligt.

  • ClusterIP: Kun til intern kommunikation i klyngen.
  • NodePort: Gør en tjeneste tilgængelig på en statisk port på hver Nodes IP-adresse og kan tilgås eksternt i bestemte scenarier.
  • LoadBalancer: Integreres med cloududbydere for at klargøre en ekstern load balancer til offentlig adgang.

Det er afgørende at vælge den rigtige type Service for at styre, hvordan dine applikationer eksponeres.

Gratis at komme i gang

Lær Grundlæggende Docker og DevOps med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Services til netværksadgang” gratis?

Ja — alle 3 lektioner i læringssporet Grundlæggende Docker og DevOps, inklusive “Services til netværksadgang”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlæggende Docker og DevOps-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Services til netværksadgang”?

Gør Deres applikationer tilgængelige internt og eksternt i clustret ved hjælp af forskellige Kubernetes Service-typer. Du øver dig i Grundlæggende Docker og DevOps med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Grundlæggende Docker og DevOps?

Der kræves ingen tidligere erfaring. Grundlæggende Docker og DevOps på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Services til netværksadgang”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Grundlæggende Docker og DevOps-lektion?

Ja. Alle Grundlæggende Docker og DevOps-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Deployments til stateless-apps
  2. Services til netværksadgang
  3. ConfigMaps og Secrets
  4. Ingress og ekstern routing
← Tilbage til Grundlæggende Docker og DevOps