Zum Inhalt springen
Prime Telecom · Kubernetes Engine

PTKE — Prime Telecom Kubernetes Engine

Eine multimandantenfähige Self-Service-Plattform zur Bereitstellung und zum Betrieb produktionsreifer Kubernetes-Cluster auf der souveränen OpenStack-Cloud von Prime Telecom.

Jahr 2024–2025
Status Live · Produktion

Ein Blick auf das Produkt.

Public Clouds liefern „Managed Kubernetes" hinter einem einzigen Knopf. Prime Telecom brauchte dieselbe Erfahrung, aber auf der eigenen OpenStack-Infrastruktur — wo Souveränität, Datenresidenz und lokale Netzwerkökonomie wichtiger sind als jedes marginale Feature auf AWS oder GCP.

PTKE ist die Steuerungsebene, die das möglich macht: eine Laravel + Vue Anwendung, die Mandanten ermöglicht, produktionsreife Kubernetes-Cluster auf Rancher-verwaltetem RKE2, OpenStack-Compute/Networking/Storage und Velero-gestütztem Disaster Recovery zu bereitstellen, zu skalieren, zu aktualisieren, zu sichern und zu betreiben. Jede Plattform-Operation, die früher in einer Ticket-Warteschlange lebte — Cluster, Node Pools, Floating IPs, Block Volumes, Object Storage, Add-ons, Backups — ist jetzt eine Self-Service-Aktion über eine REST-API und eine Vue-3-UI.

Herausforderung

OpenStack zu betreiben bedeutet, Keystone, Nova, Neutron, Cinder, Swift und Octavia zu betreiben — jedes mit eigener API-Oberfläche, Authentifizierungsmodell und Fehlermodus. Darauf Kubernetes zu betreiben bedeutet, Rancher, RKE2, CAPI, Helm, Kubeconfig-Dateien und DaemonSets zu schichten. Mandanten eine saubere Self-Service-UI über all das zu geben — ohne die Low-Level-Verrohrung durchscheinen zu lassen oder die betriebliche Sicherheit zu brechen — ist der größte Teil der Arbeit.

Und alles muss strikt mandantenfähig sein. Quotas pro Mandant, getrennte OpenStack-Projekte, Audit-Trails bei jeder ändernden Aktion, SSH-Schlüssel nur auf den richtigen Nodes verteilt, Kubeconfig-Downloads, die nicht missbraucht werden können. Ein einziger geleakter Cluster oder eine mandantenübergreifende Aktion würde die Glaubwürdigkeit der Plattform für alle anderen zerstören.

Ansatz

Laravel 12 + Inertia v2 + Vue 3 + Tailwind CSS v4 bietet Operatoren eine schnelle, typisierte Erfahrung ohne separate Frontend-Build-Pipeline. Wayfinder generiert typisierte Route- und Action-Clients, sodass jede Vue-Seite über geprüfte Verträge mit dem Backend spricht. Fortify übernimmt Sessions, 2FA und E-Mail-Verifikation; Sanctum gibt API-Tokens für den Terraform-Provider und Automatisierungs-Consumer aus.

Das Backend ist als Controllers → Form Requests → Services → Jobs strukturiert. Arbeit, die länger als ein paar Sekunden dauert, geht immer über die Queue. Elf OpenStack-Service-Wrapper sitzen vor Keystone, Nova, Neutron, Cinder, Swift und Octavia; eine separate Wrapper-Ebene spricht mit Rancher (v1, v3 und CAPI) für den Cluster-Lebenszyklus. Achtundzwanzig Queue-Jobs orchestrieren Provisioning, Node-Pool-Änderungen, Backups, Health Checks, Nutzungsaufzeichnung und SSH-Key-Verteilung. Horizon überwacht sie; Reverb streamt WebSocket-Updates zurück in den Browser des Operators, sodass Zustandsänderungen sich unmittelbar anfühlen.

Die Mandantenfähigkeit wird Ende-zu-Ende durchgesetzt: Jede ändernde Aktion durchläuft eine Policy mit Mandantenprüfung plus einer Spatie-Berechtigung, Quotas werden bei jeder Ressourcenzuweisung angewendet, und Rate-Limiting läuft pro Benutzer und pro Mandant. Kubeconfig-Downloads werden im Audit-Log protokolliert und gedrosselt. SSH-Private-Keys berühren die Plattform nie — ein In-Cluster-DaemonSet (ptke-ssh-sync) verteilt nur öffentliche Schlüssel in Kubernetes Secrets innerhalb des eigenen Clusters jedes Mandanten.

Das Ein-Klick-Erlebnis von EKS, GKE oder AKS — aber auf souveräner, lokal betriebener rumänischer Infrastruktur.

Wichtige Funktionen ausgeliefert.

  • Self-Service-RKE2-Cluster-Lebenszyklus — Bereitstellung, Skalierung, Upgrade und Klonen aus Templates mit Drain-Policies und HA-Control-Plane-Optionen
  • Node-Pool-Verwaltung mit Labels, Taints, Flavors, zusätzlichen Volumes und Unterstützung für den Cluster-Autoscaler
  • OpenStack-Networking: Subnet-Browsing, Floating-IP-Zuweisung und Octavia-Load-Balancer-Sichtbarkeit
  • Cinder-Block-Volumes mit Online-Resize, Swift-Object-Storage mit EC2-kompatiblen Credentials und Velero-gestütztes Cluster-Backup & Restore
  • Kuratierter Add-on-Katalog (Ingress, Monitoring, Logging, cert-manager, external-dns…) mit Ein-Klick-Helm-Installation pro Cluster
  • Mandanten-Quotas, Spatie RBAC, Fortify 2FA sowie Rate-Limiting pro Benutzer / pro Mandant
  • SSH-Public-Key-Verteilung an jeden Mandanten-Node über ein In-Cluster-DaemonSet — Private Keys berühren die Plattform nie
  • Vollständiges Spatie-Audit-Log, rate-limitierte Kubeconfig-Downloads und ein experimenteller Terraform-Provider für Infrastructure-as-Code

Greifbare Ergebnisse, in der Produktion gemessen.

Vue-Seiten
214
Operator-Oberflächen für jede OpenStack- und Rancher-Primitive
Controller
43
Über Cluster, Networking, Storage und Administration hinweg
Queue-Jobs
28
Asynchrone Orchestrierung von Provisioning, Skalierung, Backups, Health Checks
OpenStack-Services
11
Wrapper für Keystone, Nova, Neutron, Cinder, Swift, Octavia und mehr

PTKE ist in Produktion und liefert Managed Kubernetes auf souveräner rumänischer Infrastruktur. Operationen, die früher einen Plattformingenieur in einer Ticket-Warteschlange erforderten — Cluster-Provisioning, Upgrades, Volume-Attach/-Detach, Add-on-Installation, Backup/Restore — sind jetzt Zwei-Klick-Self-Service-Aktionen mit vollständigen Audit-Trails und einer typisierten REST-API. Ein Beta-Terraform-Provider erweitert denselben Vertrag auf Infrastructure-as-Code-Workflows.

Verwendete Technologien, nach Rolle gruppiert.

Backend
Laravel 12 PHP 8.3+ PostgreSQL Redis Horizon Reverb Fortify Sanctum Spatie Permission
Frontend
Vue 3 Inertia.js v2 TypeScript Tailwind CSS 4 Wayfinder
Infrastruktur
OpenStack (Keystone, Nova, Neutron, Cinder, Swift, Octavia) Rancher RKE2 CAPI Helm Velero
Ops & IaC
Terraform Provider Forgejo Actions Pest v4 Playwright Laravel Pint ESLint