Er zijn phishingmails in omloop die uit naam van TransIP worden verstuurd. Twijfel je over de echtheid van een e-mail van TransIP, klik dan niet op linkjes en neem contact met ons op via je controlepaneel of via support@transip.nl. Lees meer over phishing in onze Knowledge Base: https://www.transip.nl/knowledgebase/artikel/205-wat-is-phishing/
Hulpartikel overzicht

Hulpartikel

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.

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

Je krijgt in tegenstelling tot wat je 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.

Heb je ook een goed idee?

Stuur jouw idee in! Met genoeg stemmen komt jouw idee op onze wishlist!

Heeft dit artikel je geholpen?

Maak een account aan of log in om een beoordeling achter te laten.

Reacties

Maak een account aan of log in om een reactie te plaatsen.

Kom je er niet uit?

Ontvang persoonlijke hulp van onze supporters

Neem contact op