Kubernetes «services»
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 vår «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å følgende domenenavn.
echoserver
Servicen vil være tilgjengelig for de andre kontoene på Kubernetes med et lengre navn. «example» vil her være ditt kontonavn, kalt «namespace», i Kubernetes.
echoserver.example.svc.cluster.local
For å teste servicen sitt korte domenenavn kan du gjøre følgende. Finn navnet på poden som kjører tjenesten ved å kjøre følgende kommando:
kubectl get pods
Logg deretter inn i podden ved å kjøre følgende kommando. Bytt pod-navnet til det du fikk i forrige kommando.
kubectl exec --stdin --tty echoserver-764cd64747-w7h9g -- /bin/bash
Når du er her kan du teste domenenavnet ved å kjøre følgende. Da skal du få svar fra tjenesten.
curl echoserver
Neste steg er eventuelt å gjøre tjenesten tilgjengelig offentlig med HTTPS.