
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.