DevOps-bootcamp · Lektion

Service-typer: ClusterIP, NodePort, LoadBalancer

Lär dig de olika sätten att exponera Services inom och utanför ditt Kubernetes-kluster.

Lektion 2 av 412 steg

Service-typer: ClusterIP, NodePort, LoadBalancer är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 2 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.

Behov av tjänstexponering

I Kubernetes är Pods kortlivade och har dynamiska IP-adresser. Services ger dina applikationer stabil nätverksåtkomst. Men hur gör du dem åtkomliga?

Beroende på om din applikation behöver nås inifrån eller utifrån klustret, och på vilket sätt, erbjuder Kubernetes olika Service-typer. Låt oss utforska de tre viktigaste!

ClusterIP: intern åtkomst

ClusterIP är standardtypen för Service. Den ger din Service en stabil intern IP-adress som endast är åtkomlig inifrån Kubernetes-klustret.

  • Pods kan nå andra Pods med hjälp av dessa ClusterIP-adresser och Servicens namn.
  • Det passar perfekt för backendtjänster som inte behöver exponeras direkt externt.
  • Se det som en intern lastbalanserare för dina Pods.

YAML för ClusterIP-Service

Så här definierar du en Service av typen ClusterIP. Observera fältet type: ClusterIP, även om det är valfritt eftersom detta är standardvärdet.

apiVersion: v1
kind: Service
metadata:
  name: my-internal-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: ClusterIP

Åtkomst till ClusterIP-Services

När tjänsten har distribuerats tilldelar Kubernetes automatiskt en unik intern IP-adress (ClusterIP) till den. Andra Pods kan sedan använda Servicens namn (till exempel my-internal-service) eller dess IP-adress för att ansluta.

Kubernetes DNS-tjänst översätter Servicens namn till dess ClusterIP, vilket gör intern kommunikation enkel och tillförlitlig.

NodePort: extern åtkomst

Vad gör du om du behöver komma åt din applikation utifrån klustret? Det är där NodePort kommer in i bilden.

En NodePort-Service exponerar din applikation på en statisk port på varje nods IP-adress i klustret. All trafik som skickas till NodeIP:NodePort dirigeras till din Service.

  • Användbart för utveckling och mindre distributioner.
  • NodePort ligger vanligtvis i intervallet 30000–32767.

YAML för NodePort-Service

För att skapa en NodePort-Service anger du uttryckligen type: NodePort. Kubernetes väljer automatiskt en ledig port i NodePort-intervallet om du inte anger någon.

apiVersion: v1
kind: Service
metadata:
  name: my-nodeport-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
      nodePort: 30080 # Optional: K8s picks if omitted
  type: NodePort

Anslut via NodePort

När du har distribuerat en NodePort-Service kan du komma åt din applikation utifrån klustret med <AnyNodeIP>:<NodePort>.

Om en nod till exempel har IP-adressen 192.168.1.100 och den tilldelade NodePort är 30080, kan du nå din app på http://192.168.1.100:30080.

LoadBalancer: molnintegration

För produktionsmiljöer hos molnleverantörer (AWS, GCP, Azure) föredras ofta Service-typen LoadBalancer. Den skapar automatiskt en extern lastbalanserare i molnet.

Denna lastbalanserare får en publik IP-adress och distribuerar extern trafik till din Services Pods. Den hanterar all komplex dirigering åt dig.

YAML för LoadBalancer-Service

Det är enkelt att definiera en LoadBalancer-Service. Din molnleverantör hanterar det omfattande arbetet med att skapa den externa lastbalanseraren.

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

Extern åtkomst med LoadBalancer

När tjänsten har distribuerats skapar din molnleverantör en dedikerad lastbalanserare och tilldelar den en extern IP-adress eller ett värdnamn. Därefter kan du använda denna publika slutpunkt för att komma åt din applikation.

Detta ger ett robust, skalbart och mycket tillgängligt sätt att exponera dina tjänster mot internet.

Snabbkontroll: Service-typer

Vilka Kubernetes Service-typer tillåter direkt extern åtkomst till din applikation utifrån klustret?

Sammanfattning: välj din Service

Du har lärt dig om de tre viktigaste Kubernetes Service-typerna:

  • ClusterIP: För åtkomst endast internt i klustret.
  • NodePort: Exponerar tjänster på en statisk port på varje nods IP-adress och möjliggör extern åtkomst.
  • LoadBalancer: Integreras med molnleverantörer för att skapa en extern lastbalanserare med en publik IP-adress.

Välj rätt typ utifrån din applikations behov av exponering och din distributionsmiljö!

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 ”Service-typer: ClusterIP, NodePort, LoadBalancer” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Service-typer: ClusterIP, NodePort, LoadBalancer”, 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 ”Service-typer: ClusterIP, NodePort, LoadBalancer”?

Lär dig de olika sätten att exponera Services inom och utanför ditt Kubernetes-kluster. 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 2 av 4.

Hur lång tid tar lektionen ”Service-typer: ClusterIP, NodePort, LoadBalancer”?

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