Kubernetes YAML Templates mit kubectl

Das Verfassen von YAML Files für kubernetes kann mühsam und nervig sein. In vielen Fällen kann aber „kubectl“ dabei helfen, schnell und einfach ein Template für ein bestimmtes YAML File zu erstellen.

„kubectl“ ist das zentrale Management Tool für einen Kubernetes Cluster. Neben dem Abfragen und Erstellen von Clusterinformationen über die kubernetes API, kann kubectl auch YAML der gegebenen Befehle erzeugen.

Derzeit können folgende Ressourcen mit „kubectl create“ erzeugt werden:

  • clusterrole
  • clusterrolebinding
  • configmap
  • cronjob
  • deployment
  • job
  • namespace
  • poddisruptionbudget
  • priorityclass
  • quota
  • role
  • rolebinding
  • secret
  • secret docker-registry
  • secret generic
  • secret tls
  • service
  • service clusterip
  • service externalname
  • service loadbalancer
  • service nodeport
  • serviceaccount

Ein einfaches Beispiel ist die Erstellung eines YAML Files für die Erzeugung eines Deployments:

kubectl create deployment test-deployment --image=nginx --dry-run=client -o yaml > test-deployment.yaml

Das Ergebnis sieht dann folgendermaßen aus:

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: test-deployment
  name: test-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test-deployment
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: test-deployment
    spec:
      containers:
      - image: nginx
        name: nginx
        resources: {}
status: {}

Im YAML File können dann entsprechend weitere Parameter hinzugefügt oder angepasst werden. Bspw. könnte die Anzahl der Replicas auf 3 erhöht werden. Um das ganze auf den kubernetes Cluster anzuwenden, wird die Datei mit folgendem Befehl aufgerufen:

kubectl create -f test-deployment.yaml

Danach sollten sich die Pods entsprechend im Cluster erzeugen.

Hinterlasse einen Kommentar