KunnskapsbaseKubernetes

Kubernetes "services"

Oppdatert: 2025-01-15
Kubernetes

Et Kubernetes-system består av flere servere, kalt «noder». Når du legger ut en tjeneste på Kubernetes, vil Kubernetes velge hvilken av nodene tjenesten skal ligge på. Tjenesten vil bli gjort tilgjengelig internt på en intern IP-adresse. Du kan også be Kubernetes ha flere instanser av den samme tjenesten, kalt replikaer. Disse får da hver sin interne IP-adresse.

Skulle Kubernetes velge å opprette en tjeneste på nytt får den en ny IP-adresse. Når du skal kalle en tjeneste fra en annen tjeneste, bør du derfor ikke bruke disse IP-adressene. Oppretter du en «service» vil tjenesten få sitt eget interne domenenavn. Dette domenenavnet vil da stå for en ny intern IP-adresse. Når man kommuniserer med dette nye domenenavnet, vil Kubernetes så lastbalansere ved å velge en tilfeldig IP-adresse hver gang tjenesten kalles.

I denne guiden viser vi deg hvordan du oppretter en service, og hvordan du bruker den. Først må du ha en tjeneste. Følg guiden «Hello world» i Kubernetes, så får du en tjeneste som heter «echoserver».

Legg dette i en fil som heter service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: echoserver
spec:
  ports:
  - port: 80
    targetPort: 8080
    protocol: TCP
  selector:
    app: echoserver

I mappen der denne filen ligger, kjør følgende kommando for å installere servicen:

kubectl apply -f service.yaml

Dette vil gjøre tjenesten tilgjengelig på domenenavnet echoserver. Servicen vil være tilgjengelig for de andre kontoene på Kubernetes med et lengre navn (namespace). F.eks. echoserver.example.svc.cluster.local der «example» er ditt kontonavn.

For å teste: Finn navnet på poden med kubectl get pods. Logg inn i podden med kubectl exec --stdin --tty <pod-navn> -- /bin/bash. Inne i podden kan du kjøre curl echoserver for å få svar fra tjenesten.

Neste steg er eventuelt å gjøre tjenesten tilgjengelig offentlig med HTTPS.

Liker du det du leser?

Få lignende artikler rett i innboksen — 1–2 ganger i måneden. Ingen spam.