Service-typer: ClusterIP, NodePort, LoadBalancer
Lær om de ulike måtene å gjøre tjenester tilgjengelige på innenfor og utenfor Kubernetes-klyngen.
Service-typer: ClusterIP, NodePort, LoadBalancer er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i DevOps-bootcamp, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.
Behov for eksponering av tjenester
I Kubernetes er Pods midlertidige og har dynamiske IP-adresser. Services gir applikasjonene dine stabil nettverkstilgang. Men hvordan eksponerer du dem?
Avhengig av om applikasjonen skal være tilgjengelig fra innsiden eller utsiden av klyngen, og på hvilken måte, tilbyr Kubernetes ulike Service-typer. La oss se nærmere på de tre viktigste!
ClusterIP: Intern tilgang
ClusterIP er standardtypen for Service. Den gir Servicen en stabil intern IP-adresse som bare er tilgjengelig fra Kubernetes-klyngen.
- Pods kan nå andre Pods ved hjelp av disse ClusterIP-adressene og navnet på Servicen.
- Den egner seg perfekt for backend-tjenester som ikke trenger direkte eksponering mot omverdenen.
- Tenk på den som en intern lastbalanserer for Pods.
YAML for ClusterIP Service
Slik definerer du en Service av typen ClusterIP. Legg merke til feltet type: ClusterIP, selv om det er valgfritt siden dette er standardtypen.
apiVersion: v1
kind: Service
metadata:
name: my-internal-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIPTilgang til ClusterIP-tjenester
Når Servicen er distribuert, tildeler Kubernetes den automatisk en unik intern IP-adresse (ClusterIP). Andre Pods kan deretter bruke navnet på Servicen (for eksempel my-internal-service) eller IP-adressen for å koble til.
Kubernetes' DNS-tjeneste oversetter navnet på Servicen til dens ClusterIP, noe som gjør intern kommunikasjon enkel og pålitelig.
NodePort: Ekstern tilgang
Hva om du trenger tilgang til applikasjonen fra utsiden av klyngen? Det er her NodePort kommer inn.
En NodePort-Service eksponerer applikasjonen på en statisk port på IP-adressen til hver node i klyngen. All trafikk som sendes til NodeIP:NodePort, rutes til Servicen.
- Nyttig for utvikling og mindre distribusjoner.
- NodePort ligger vanligvis i området 30000–32767.
YAML for NodePort Service
For å opprette en NodePort-Service angir du eksplisitt type: NodePort. Hvis du ikke angir en port, velger Kubernetes automatisk en tilgjengelig port i NodePort-området.
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: NodePortKoble til via NodePort
Etter at du har distribuert en NodePort-Service, kan du få tilgang til applikasjonen fra utsiden av klyngen ved å bruke <AnyNodeIP>:<NodePort>.
Hvis IP-adressen til en node for eksempel er 192.168.1.100 og den tildelte NodePort-porten er 30080, kan du nå appen på http://192.168.1.100:30080.
LoadBalancer: Integrasjon med skyen
For produksjonsmiljøer hos skyleverandører (AWS, GCP, Azure) foretrekkes ofte Service-typen LoadBalancer. Den oppretter automatisk en ekstern lastbalanserer i skyen.
Denne lastbalansereren får en offentlig IP-adresse og fordeler ekstern trafikk til Pod-ene til Servicen. Den håndterer all den komplekse rutingen for deg.
YAML for LoadBalancer Service
Det er enkelt å definere en LoadBalancer-Service. Skyleverandøren din gjør det meste av arbeidet med å opprette den eksterne lastbalansereren.
apiVersion: v1
kind: Service
metadata:
name: my-loadbalancer-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancerEkstern tilgang med LoadBalancer
Når Servicen er distribuert, oppretter skyleverandøren din en dedikert lastbalanserer og tildeler den en ekstern IP-adresse eller et vertsnavn. Deretter kan du bruke dette offentlige endepunktet for å få tilgang til applikasjonen.
Dette gir en robust, skalerbar løsning med høy tilgjengelighet for å eksponere tjenestene dine mot internett.
Kort kontroll: Service-typer
Hvilke Kubernetes Service-typer tillater direkte ekstern tilgang til applikasjonen fra utsiden av klyngen?
Oppsummering: Velg riktig Service
Du har lært om de tre viktigste Kubernetes Service-typene:
- ClusterIP: For tilgang som bare skal være intern i klyngen.
- NodePort: Eksponerer tjenester på en statisk port på hver nodes IP-adresse, slik at de kan nås eksternt.
- LoadBalancer: Integreres med skyleverandører for å opprette en ekstern lastbalanserer med en offentlig IP-adresse.
Velg riktig type basert på hvor tilgjengelig applikasjonen skal være, og hvilket distribusjonsmiljø du bruker!
Lær deg DevOps-bootcamp med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 142
- Leksjoner
- 568
Ofte stilte spørsmål
Er leksjonen «Service-typer: ClusterIP, NodePort, LoadBalancer» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «Service-typer: ClusterIP, NodePort, LoadBalancer», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.
Hva lærer jeg i «Service-typer: ClusterIP, NodePort, LoadBalancer»?
Lær om de ulike måtene å gjøre tjenester tilgjengelige på innenfor og utenfor Kubernetes-klyngen. Du øver på DevOps-bootcamp med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med DevOps-bootcamp?
Ingen tidligere erfaring er nødvendig. DevOps-bootcamp på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Service-typer: ClusterIP, NodePort, LoadBalancer»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne DevOps-bootcamp-leksjonen?
Ja. Alle DevOps-bootcamp-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Gjøre apper tilgjengelige med Services
- Service-typer: ClusterIP, NodePort, LoadBalancer
- Ingress for ekstern tilgang
- DNS og tjenesteoppdaging