Crossplane: GitOps für die Multi-Cloud

Crossplane provisioniert deklarativ jegliche Ressource in jedweder Umgebung – auch Cloud-übergreifend. Möglich macht dies die Kubernetes-API. Ein Einstieg.

Lesezeit: 20 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 3 Beiträge
Von
  • Jonas Hecht
Inhaltsverzeichnis
Mehr zu Kubernetes, DevOps und CI/CD

Die deklarative Beschreibung von Infrastruktur mithilfe von Infrastructure-as-Code-Werkzeugen hat sich durchgesetzt, der Markt scheint bereits aufgeteilt. Ob Terraform oder Cloud-Development-Kits wie AWS CDK, Azure Bicep oder Pulumi: Es wird einfach durch Code beschrieben, welche Komponenten die eigene Anwendung benötigt, und schon werden diese provisioniert. In den meisten Fällen muss man dafür jedoch ein neues Werkzeug oder eine neue Sprache erlernen.

Jonas Hecht

Jonas Hecht ist Senior IT Consultant bei codecentric.

Genau hier setzt das Open-Source-Projekt Crossplane an. Das Programm befindet sich seit Ende September 2021 im Incubating-Status der Cloud Native Computing Foundation (CNCF) und betrachtet die Welt durch die Kubernetes-Brille: Jegliche Infrastruktur soll in Crossplane mithilfe der Kubernetes-API beschrieben werden. Obwohl Crossplane selbst auf Kubernetes basiert, kann es auch Infrastruktur provisionieren, die nicht Kubernetes-basiert ist.

Um dies zu erreichen, setzt Crossplane Kubernetes Custom Resource Definitions (CRD) ein. Diese erweitern die bekannte Kubernetes-API aus Pods, Services und Deployments um weitere Ressourcen, die die zu provisionierende Infrastruktur direkt repräsentieren. Solche Ressourcen können ein AWS-S3-Bucket, ein AKS-Cluster, ein Internet-Gateway oder ein Subnetz sein. Da Kubernetes oft mit dem Begriff Cloud-native assoziiert wird, könnte man bei Crossplane also von einem Cloud-native-GitOps-Werkzeug sprechen. Und wenn das Team bereits mit der Kubernetes-API vertraut ist, muss es auch keine neue Sprache erlernen.