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

Kubernetes Deployments via .yaml-objects

Een Kubernetes-cluster begint bijna altijd met het maken van een Deployment. Als onderdeel van een Deployment worden één of meer Pods (een groep van één of meer containers) aangemaakt. In de praktijk gebruikt men hier meestal Kubernetes (YAML) objects voor, of een package manager zoals Helm.

In deze handleiding laten we zien hoe je een Kubernetes Deployment maakt door gebruikt te maken van Kubernetes objects. Meer informatie over Kubernetes objects en het maken daarvan, vind je in onze artikelen 'Wat zijn Kubernetes objects' en 'Kubernetes (yaml) objects maken'.

Een Deployment maken met een Kubernetes object

 

Een Kubernetes object bevat de specificiaties van de gewenste status van een Kubernetes-cluster, zoals de gebruikte Kubernetes API versie, de container image, aantal replica's, etc. In deze handleiding gebruiken we een voorbeeld object van de officiële Kubernetes-organisatie dat terug te vinden is op https://k8s.io/examples/application/deployment.yaml. Je bent vrij hiervoor een eigen object te gebruiken.

 

Stap 1

Maak een Deployment aan met het onderstaande commando. Als je een ander object wil deployen dan dit voorbeeld, vervang dan het adres https://k8s.io/examples/application/deployment.yaml door het adres waar het gewenste object gehost wordt.

kubectl apply -f https://k8s.io/examples/application/deployment.yaml

Je krijgt de volgende bevestiging te zien:

deployment.apps/nginx-deployment created

Je Deployment op basis van een .yaml object is nu klaar voor gebruik. 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
nginx-deployment   2/2     2            2           21s

 

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
nginx-deployment-9456bbbf9-m25sr   1/1     Running   0          52s
nginx-deployment-9456bbbf9-wwczr   1/1     Running   0          52s

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

Een Pod is standaard alleen bereikbaar vanuit het interne virtuele netwerk van je Kubernetes-cluster en niet via het publieke internet. Om de containers in dit voorbeeld bereikbaar te maken voor het publieke internet 'expose' je de Pods als een Kubernetes Service van het type 'LoadBalancer'.

kubectl expose deployment nginx-deployment --type=LoadBalancer --port=80
  • 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 Nginx applicatie luistert naar verkeer op poort 80, zie de opmaak van dit specifieke object in ons artikel 'Wat zijn Kubernetes objects'. Gebruik je een ander object voor jouw Deployment, controleer dan daarin het poortnummer en pas die hier aan.

Je krijgt een duidelijke bevestiging te zien:

service/nginx-deployment 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
kubernetes         ClusterIP      10.96.0.1        <none>        443/TCP        42d
nginx-deployment   LoadBalancer   10.123.234.123   <pending>     80:31867/TCP   15s

Pending geeft aan dat de loadbalancer nog aangemaakt wordt. Doorgaans duurt dit maximaal een minuut of twee. Hierna zie je onder 'EXTERNAL-IP' het externe IP-adres van de loadbalancer terug.


 

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 :80 voor de poort waar je Service op luistert, bijvoorbeeld: 86.123.234.123.haip.transip.net:80

Als je het voorbeeld object gebruikt hebt om een Deployment aan te maken, krijg je nu een Nginx welkomstpagina te zien.

Voor het daadwerkelijk gebruiken van je eigen website zijn aanvullende stappen nodig: Je kunt of je website in een keer in een container stoppen en die deployen, of naast nginx ook een FTP-server te deployen. We lichten deze opties in de toekomst in een apart artikel toe.


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 nginx-deployment
kubectl delete deployment nginx-deployment

Mocht je niet meer zeker weten hoe je Service 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 maken van Deployments op basis van objects in Kubernetes. Een andere handige manier om Deployments te maken is door Helm Charts te gebruiken. We raden daarvoor aan een kijkje te nemen in onze handleiding 'Kubernetes Deployments met Helm Charts'.

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