Crossplane Konzept
Traditionell:
Terraform/Pulumi verwaltet Cloud-Ressourcen separat
Kubernetes verwaltet App-Ressourcen
→ Zwei getrennte Systeme
Mit Crossplane:
Kubernetes ist das Control Plane fuer ALLES
Cloud-Ressourcen = Kubernetes Custom Resources
kubectl create -f rds-instance.yaml
→ AWS RDS wird erstellt!
Vorteile:
- Einheitliches API (kubectl)
- RBAC fuer Cloud-Ressourcen
- GitOps fuer App + Infra in einem
- Komposition: eigene Abstraktion fuer Cloud-Ressourcen
Crossplane installieren
# Helm-Installation
helm repo add crossplane-stable https://charts.crossplane.io/stable
helm repo update
helm install crossplane crossplane-stable/crossplane --namespace crossplane-system --create-namespace
# Crossplane CLI
curl -sL https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | sh
# Status
kubectl get pods -n crossplane-system
AWS Provider installieren
# AWS Provider
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-aws-s3
spec:
package: xpkg.upbound.io/upbound/provider-aws-s3:v1
# Credentials konfigurieren
kubectl create secret generic aws-secret --from-file=creds=./aws-credentials.txt --namespace crossplane-system
# ProviderConfig
apiVersion: aws.upbound.io/v1beta1
kind: ProviderConfig
metadata:
name: default
spec:
credentials:
source: Secret
secretRef:
namespace: crossplane-system
name: aws-secret
key: creds
S3 Bucket als Kubernetes-Resource
# s3-bucket.yaml
apiVersion: s3.aws.upbound.io/v1beta1
kind: Bucket
metadata:
name: mein-backup-bucket
spec:
forProvider:
region: eu-central-1
tags:
Environment: production
Team: platform
providerConfigRef:
name: default
# S3 Bucket erstellen!
kubectl apply -f s3-bucket.yaml
# Status
kubectl get buckets
kubectl describe bucket mein-backup-bucket
# S3 Bucket loeschen
kubectl delete bucket mein-backup-bucket
FAQ
Wann nehme ich Crossplane statt Terraform?
Crossplane: wenn Kubernetes schon genutzt wird und App-Teams Cloud-Ressourcen selbst beantragen sollen (Self-Service). Terraform: bessere Ecosystem-Reife, mehr Provider.
Fazit
Crossplane ist spannend fuer Platform-Teams: Apps und Infrastruktur im selben Kubernetes-Cluster, einheitliche RBAC und GitOps.
Kubernetes Platform Engineering fuer KMU in Heidelberg, Mannheim und der Rhein-Neckar-Region. Beratung anfragen.