
Kubernetes: Deployment-, Service- und Ingress-YAML online validieren
Deployment, Service, Ingress: YAML-Struktur vor `kubectl apply` prüfen — lokal im Browser validieren, ohne Cluster und kubectl.
Kubernetes-YAML vor `kubectl apply` validieren
Ein Tippfehler in apiVersion, ein Deployment ohne spec.selector.matchLabels oder ein Ingress ohne pathType fällt oft erst nach dem Push auf, wenn die CI, ein Kollege oder der API-Server das Manifest ablehnt. FastMinify führt kein kubectl aus, spricht keinen Cluster an und ist nicht kubeconform. Der Kubernetes-YAML-Validator führt strukturelle Prüfungen im Browser aus: Layer A (apiVersion, kind, metadata) plus Regeln für einzelne Kinds wie Deployment, Service und Ingress. Kombinieren Sie ihn mit dem Kubernetes-Manifest-Formatter für lesbares YAML mit mehreren Dokumenten. Die ganze Werkzeugfamilie liegt im Kubernetes-Hub, einem Schwesterbereich des DevOps-Hubs für Compose, Terraform und Dockerfile.
Häufige Fehler und Ablauf vor apply
Einige Fehler tauchen ständig in eingefügten Manifesten, Helm-Ausgaben und Tutorial-Ausschnitten auf.
Ein Kubernetes-Rollout kommt selten allein. Validieren Sie die Manifeste und prüfen Sie dann den Image-Build und die IaC, die den Cluster bereitstellt.
Validieren, Formatieren, kubeconform und kubectl im Vergleich
Browser-Validierung, Formatierung, OpenAPI-Schema-Werkzeuge und Cluster-Dry-Runs beantworten verschiedene Fragen. Wer sie vermischt, bekommt hier ein grünes Häkchen und später eine rote CI.
Tool / Schicht
Was es beweist
Eine einfache Reihenfolge fängt die meisten Tippfehler ab, bevor etwas einen Cluster berührt.
Wann das Browser-Werkzeug reicht
Für drei strukturelle Fehler in einem Ticket-Manifest brauchen Sie keinen Cluster oder kubeconfig.
Grenzen des Browser-Werkzeugs und was es nicht ersetzt
CLI-Werkzeuge und der apiserver bleiben Pflicht, sobald Sie eine OpenAPI-Schema-Validierung gegen eine bestimmte Kubernetes-Version, CRD-Schemas oder Admission-Webhook-Policies brauchen.
Der Validator liest nur das eingefügte YAML. Er löst keine Helm-Charts auf und expandiert keine Kustomize-Overlays. Ob ein von einem Ingress referenzierter Service-Name in einem anderen Dokument existiert, prüft er ebenfalls nicht.
CLI und Ökosystem
kubeconform, kubectl und yamllint bleiben der Standard in der CI. FastMinify ergänzt die Erkundung und einmalige Prüfungen.
kubeconform
Validiert Manifeste gegen die OpenAPI-Schemas von Kubernetes (an eine Version gebunden).
Vorteile:
Nachteile:
kubectl apply --dry-run=client
Dry-Run auf Clientseite mit lokaler Schema-Validierung (abhängig von der kubectl-Version).
Vorteile:
Nachteile:
yamllint
Generischer YAML-Linter für Einzug und Stil.
Vorteile:
Nachteile:
Häufige Manifeste wie Deployment, Service und Ingress
Jedes Manifest ist ein YAML-Mapping mit apiVersion, kind und metadata (name oder generateName). FastMinify prüft diese Paarung. So erwartet Deployment zum Beispiel apps/v1, Service erwartet v1 und Ingress erwartet networking.k8s.io/v1. Veraltete API-Gruppen wie extensions/v1beta1 erzeugen eine Warnung, keinen harten Abbruch.
Ein Deployment braucht ein nicht leeres spec.selector.matchLabels, ein nicht leeres Array spec.template.spec.containers und je Container ein name und ein image. FastMinify prüft auch, dass die Werte von spec.selector.matchLabels zu spec.template.metadata.labels passen. Das ist ein klassischer Copy-Paste-Fehler, der den YAML-Lint besteht, aber zur Laufzeit bricht.
Vorher
Nachher
Ein Service muss ein nicht leeres Array spec.ports deklarieren, und jeder Port braucht port als Zahl oder als IntOrString-String. Ein Ingress mit networking.k8s.io/v1 braucht spec.rules mit http.paths. Jeder Path verlangt path, pathType (Prefix, Exact oder ImplementationSpecific) sowie backend.service.name und backend.service.port.number oder port.name.
Ein konkreter Ablauf zum Formatieren, Validieren und Generieren
Öffnen Sie Kubernetes validieren, fügen Sie eine .yaml- oder .yml-Datei ein oder laden Sie sie hoch (höchstens 512 KiB) und warten Sie auf das Debounce (~300 ms). Das Ergebnispanel listet Probleme nach Stufe (Fehler, Warnung, Information) mit path, einem optionalen docIndex für Dateien mit mehreren Dokumenten und einer Zeile, wenn vorhanden. Ein Ergebnis Gültig mit Warnungen zeigt trotzdem Probleme an: Lesen Sie die Warnungen vor dem Merge.
Das Werkzeug Kubernetes formatieren schreibt Manifeste mit mehreren Dokumenten mit js-yaml und 2 oder 4 Leerzeichen Einzug neu. Beim Einfügen, Hochladen oder Laden des Beispiels formatiert es automatisch. Nach einer manuellen Änderung nutzen Sie die Schaltfläche Format (⌘↵). YAML-Kommentare mit # gehen bei der Hin- und Rückkonvertierung verloren: Kopieren Sie sie vorher, wenn Sie sie brauchen.
Sie wechseln von networking.k8s.io/v1beta1 zu v1. Das YAML lässt sich weiter einlesen, aber jeder Path braucht ein ausdrückliches pathType. Der Validator meldet invalid_path_type, bevor Sie einen Pipeline-Schritt mit kubectl apply verschwenden.
Zusammenfassung
Wer die Struktur von Kubernetes-Manifesten vor kubectl apply validiert, spart CI-Minuten für Tippfehler, die der Browser findet. Nutzen Sie FastMinify als schnellen Strukturfilter: formatieren Sie für die Lesbarkeit und validieren Sie dann GVK und Kind-Regeln. Ergänzen Sie kubeconform oder einen Cluster-Dry-Run, wenn es auf das echte Schema ankommt. Weiter geht es im Kubernetes-Hub für Generatoren und Helm-Values und im DevOps-Hub für Compose und Terraform.
Kubernetes-YAML jetzt validieren
Verwandte Artikel

HTTP/2 und HTTP/3 ändern den Weg der Dateien, nicht ihre Größe. Messungen zu Größe, Kompilierzeit und Bundling zeigen, was Minifizierung noch bringt.

Rechnen Sie eine Unix-Epoche in ein lesbares Datum um und zurück, unterscheiden Sie Sekunden und Millisekunden und meiden Sie Zeitzonen-, JWT- und Zeitumstellungsfallen.

Lesen Sie einen Cron-Ausdruck Feld für Feld, prüfen Sie die nächsten Ausführungen in UTC oder Ortszeit und meiden Sie Fallen bei Schritten und Zeitzonen.