Creëer je eerste inzet op een Kubernetes Cluster

In dit artikel zullen we zien hoe je je eerste inzet op een Kubernetes Cluster kunt maken. Als voorbeeld zullen we een inzet voor NginX maken.

Zodra we een draaiend Kubernetes cluster hebben, kunnen we er onze gecontaineriseerde toepassingen op inzetten. We kunnen een Kubernetes Deployment configuratie maken om dit te bereiken.

Een Deployment biedt declaratieve updates voor Pods en ReplicaSets. We beschrijven een gewenste toestand in de Deployment en de Deployment Controller verandert de werkelijke toestand in een gecontroleerd tempo naar de gewenste toestand.

We kunnen een Deployment maken en beheren met de “kubectl” Kubernetes commandolijn interface. Kubectl gebruikt de Kubernetes API om met het cluster te interageren.

Er zijn drie stadia in de levenscyclus van een deployment:

  1. Voortschrijdend: Kubernetes markeert een Deployment als voortschrijdend wanneer de Deployment een nieuwe ReplicaSet aanmaakt, de Deployment zijn nieuwste ReplicaSet opschaalt of zijn oudere ReplicaSet afschaalt of nieuwe Pods klaar of beschikbaar worden
  2. Voltooid: Kubernetes markeert een Deployment als voltooid wanneer alle replica’s die bij de Deployment horen zijn bijgewerkt, beschikbaar zijn en er geen oude replica’s voor de Deployment meer draaien.
  3. Mislukt: Dit kan gebeuren door onvoldoende quota, readiness probe mislukkingen, image pull fouten, onvoldoende permissies.

Pre-requisites

  1. AWS Account (Maak aan als je er geen hebt)
  2. Een Kubernetes Cluster

Opmerking: Je kunt ook VM’s gebruiken om een cluster te maken als je het niet op AWS EC2 Instances wilt proberen.

Wat we zullen doen

  1. Maak een Kubenetes Deployment voor NginX

Maak een Kubenetes Inzet voor NginX

Laten we om onze eerste deployment te maken gewoon een nieuwe directory maken om ons Object/Deployment File te maken. Gebruik het volgende commando om een nieuwe directory in je systeem aan te maken

mkdir my-first-deployment
cd my-first-deployment/

Voor we verder gaan, controleer je de status van het cluster.

Om te controleren welke knooppunten in het cluster beschikbaar zijn en om de versie van het programma“kubectl” te controleren gebruik je de volgende commando’s.

sudo kubectl versie
sudo kubectl get nodes

kubectl versie

Als je Nodes beschikbaar hebt in je cluster ben je klaar om je deployment te maken.

Maak een bestand“my-first-deployment.yml” met het volgende blok code

vim my-first-deployment.yml

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

Hier,

  • apiVersion:APIVersion definieert het geversioneerde schema van deze representatie van een object.
  • soort:Soort object dat je wilt maken, zoals Deployment, Service, Configmap en meer.
  • naam:De naam moet uniek zijn binnen een namespace.
  • labels:Map van string sleutels en waarden die gebruikt kan worden om objecten te ordenen en te categoriseren
  • spec:Specificatie van het gewenste gedrag van de Ontplooiing.
  • replicas:Aantal gewenste pods.
  • selector:Label selector voor pods. Bestaande ReplicaSets waarvan de pods hiermee geselecteerd worden, zijn degenen die door deze uitrol beïnvloed worden. Het moet overeenkomen met de labels van het pod sjabloon.

Nu ben je klaar om je deployment te maken met de volgende commando’s.

sudo kubectl apply -f my-first-deployment.yml
sudo kubectl get deployments

kubectl toepassen

In de bovenstaande schermafbeelding zie je dat de deployment is aangemaakt met twee pods die beschikbaar zijn om te gebruiken.

Je kunt de details van de pods krijgen met het volgende commando.

sudo kubectl get pods

kubectl get pods

Als je meer wilt weten over de inzet kun je dit “kubectl describe” commando gebruiken om de volledige details van de inzet te krijgen.

sudo kubectl get deployments
sudo kubectl describe deployments nginx-deployment

kubectl get deployments

Als je de deployment niet meer nodig hebt kun je hem verwijderen met “kubectl delete command”.

sudo kubectl get deployments
sudo kubectl delete deployments nginx-deployment
sudo kubectl get deployments

kubectl  get deployments

In de bovenstaande schermafbeelding zie je dat de deployment niet meer beschikbaar is nadat hij verwijderd is.

Zodra je de deployment verwijdert, worden ook de pods verwijderd.

Je kunt de beschikbaarheid van de pods controleren met het volgende commando.

sudo kubectl get pods

kubectl  krijg pods

In de bovenstaande schermafbeelding zie je dat de pods na het verwijderen van de deployment verwijderd zijn en niet meer beschikbaar zijn.

Conclusie

In dit artikel zagen we de stappen om je eerste NginX Deployment op Kubernetes te maken. We zagen ook hoe de details betreffende de inzet kunnen worden uitgepakt. Samen daarmee verkenden we de commando’s om de inzet te verwijderen.