Winkelwagen

    Sorry, we konden geen resultaten vinden voor jouw zoekopdracht.

    Een hello node deployen in Kubernetes

    In onze Kubernetes quickstart handleiding hebben we laten zien hoe je je Kubernetes-cluster klaar maakt voor gebruik. Aan het eind kun je de status van je cluster opvragen, maar... hoe dan verder?

    In Kubernetes begin je bijna altijd met het maken van een Deployment op basis van een container image. Als onderdeel daarvan worden één of meer Pods (een groep van één of meer containers) aangemaakt.

    In deze handleiding laten we als voorbeeld zien hoe je een Kubernetes Deployment aanmaakt door een 'hello node' container image te deployen. In dit voorbeeld wordt hiervoor één Pod aangemaakt, maar in een praktische use case zijn dit eigenlijk atlijd meer Pods.

    Voor de stappen in deze handleiding is het belangrijk dat je Kubectl hebt geïnstalleerd en je Kubeconfig-file hebt gedownload.

    Een Kubernetes Hello Node Deployment maken

     

    Stap 1

    Maak een Deployment aan met het onderstaande commando. Hiervoor gebruiken we de hello-node container image van de officiële Kubernetes organisatie.

    kubectl create deployment hello-node --image=registry.k8s.io/echoserver:1.4

    Je krijgt de volgende bevestiging te zien:

    deployment.apps/hello-node created

    So far so good. We doorlopen gelijk enkele nuttige beheercommando's waarmee je de status van verschillende aspecten van je Deployment kunt controleren.

    De status van je Deployment controleren

    Controleer gelijk de status van je nieuwe Deployment met het commando:

    kubectl get deployments

    Host je meerdere Deployments? Dan zie je die allemaal terug met dit commando. Als dit je enige Deployment is, ziet de output er als volgt uit:

    NAME         READY   UP-TO-DATE   AVAILABLE   AGE
    hello-node   1/1     1            1           54s

    De status van je Pods controleren

    Controleer vervolgens de status van je Pods:

    kubectl get pods

    De output ziet er als volgt uit. Het maakt niet uit hoeveel Pods je hebt of tot welke Deployments die behoren, je ziet ze hier allemaal terug. Je Deployment herken je aan dat de naam van je Pod altijd begint met de naam van je Deployment.

    NAME                          READY   STATUS    RESTARTS   AGE
    hello-node-74bfcb5b58-zkxdt   1/1     Running   0          1m2s

    Er zijn nog veel meer commando's beschikbaar. Een overzicht van enkele van de nuttigste voor het beheer van jouw cluster vind je in deze handleiding.


     

    Stap 2

    De Pod is standaard alleen bereikbaar vanuit het interne virtuele netwerk van je Kubernetes-cluster en niet via het publieke internet. Om je hello-node container bereikbaar te maken voor het publieke internet 'expose' je de Pod als een Kubernetes Service van het type 'LoadBalancer'.

    kubectl expose deployment hello-node --type=LoadBalancer --port=8080
    • De toevoeging --type=LoadBalancer geeft aan dat je een LoadBalancer Service wil aanmaken en zo je Pods wil exposen aan het publieke internet. Hiervoor wordt in onze systemen automatisch een HA-IP loadbalancer aangemaakt voor jouw Deployment.
    • De applicatie in de 'hello node' container image luistert alleen naar verkeer op poort 8080. In een eigen use case kan dit prima een andere poort zijn.

    Je krijgt een duidelijke bevestiging te zien:

    service/hello-node exposed

    De status van je LoadBalancer Service (en alle andere Kubernetes Services op jouw cluster) zie je terug met het commando:

    kubectl get services

    Bij een nieuw cluster ziet de output er ongeveer als volgt uit:

    NAME         TYPE           CLUSTER-IP       EXTERNAL-IP                       PORT(S)          AGE
    hello-node   LoadBalancer   10.105.123.234   86-123-234-123.haip.transip.net   8080:30625/TCP   1m1s
    kubernetes   ClusterIP      10.96.0.1                                          443/TCP          11d

     

    Stap 3

    Tot slot blijft er nog één ding over: het testen van je hello node Deployment.

    Open een browser en ga naar het IP-adres dat je aan het eind van stap 2 onder 'EXTERNAL-IP' ziet, met de toevoeging :8080 voor de poort waar je Service op luistert, bijvoorbeeld: 86-123-234-123.haip.transip.net:8080.

    Het external-IP dat je hier ziet is in feite een subdomein. Het daadwerkelijke IP-adres is de getallenreeks maar dan met . in plaats van - oftewel 86.123.234.123. Je kunt ook te allen tijde in het controlepaneel de IP-adressen terug zien van je load balancers door bij je cluster naar het tabblad 'Load Balancers' te navigeren.

    Je krijgt in tegenstelling tot wat je misschien verwacht niet een soort 'hello world' bericht te zien, maar enige client informatie:

    CLIENT VALUES:
    client_address=10.128.0.3
    command=GET
    real path=/
    query=nil
    request_version=1.1
    request_uri=http://86-123-234-123.haip.transip.net:8080/
    
    SERVER VALUES:
    server_version=nginx: 1.10.0 - lua: 10001
    
    HEADERS RECEIVED:
    accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
    accept-encoding=gzip, deflate
    accept-language=en-US,en;q=0.5
    connection=keep-alive
    host=86-105-246-14.haip.transip.net:8080
    upgrade-insecure-requests=1
    user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
    BODY:
    -no body in request-

    Je Deployment en bijbehorende services verwijderen

     

    Nu je klaar bent met het testen van een hello node Deployment, wil je deze allicht verwijderen. Dit bestaat uit twee onderdelen: het verwijderen van aangemaakte Services het verwijderen van de daadwerkelijke Deployment.

    kubectl delete service hello-node
    kubectl delete deployment hello-node

    Mocht je niet meer zeker weten hoe je Service(s) of je Deployment heet, dan kun je die opnieuw opvragen met respectievelijk:

    kubectl get services
    kubectl get deployments

     

    Dit brengt ons bij het eind van deze handleiding over het deployen van een hello node in Kubernetes. In een toekomstige update voegen we hier een overzicht toe van handleidingen voor het opzetten van specifieke use cases.

    Kom je er niet uit?

    Ontvang persoonlijke hulp van onze supporters

    Neem contact op