Deploying Typo3 on Kubernetes with visual template and KubeKanvas


Deploy a high-availability TYPO3 CMS stack backed by MariaDB, Redis, and an automated Horizontal Pod Autoscaler. This setup configures persistent file storage, session caching, and NGINX Ingress routing for scalable content management workloads.
| Component | Type | Port | Role |
|---|---|---|---|
| typo3-project | Namespace | N/A | Provides logical isolation for all stack resources |
| typo3-secrets | Secret | N/A | Stores base64-encoded MariaDB database credentials |
| typo3-files-pvc | PersistentVolumeClaim | N/A | Provides 5Gi persistent storage for media assets on /fileadmin |
| redis-service | Service | 6379 | Exposes Redis endpoints internally across the cluster |
| redis | StatefulSet | 6379 | Runs 3 Redis instances for session and database query caching |
| db-service | Service | 3306 | Exposes MariaDB internally to the application network |
| typo3-db | StatefulSet | 3306 | Runs MariaDB 10.11 with UTF8MB4 support for data storage |
| typo3-app | Deployment | 80 | Runs 3 TYPO3 v13 PHP-Apache web worker replicas |
| typo3-service | Service | 80 | Exposes TYPO3 application instances via a LoadBalancer |
| ing-7 | Ingress | 80 | Routes external HTTP traffic through NGINX Ingress to TYPO3 |
| typo3-hpa | HorizontalPodAutoscaler | N/A | Scales TYPO3 pods between 1 and 5 replicas at 70% CPU usage |
External HTTP requests pass through the NGINX Ingress controller to the typo3-service LoadBalancer, which distributes traffic across active typo3-app pods. The TYPO3 application workers read and write persistent media assets to typo3-files-pvc mounted at /var/www/html/fileadmin. Database operations route internally to the typo3-db StatefulSet over db-service:3306, authenticated via typo3-secrets. Session data and application cache operations query the redis StatefulSet via redis-service:6379. The typo3-hpa continuously tracks CPU metrics and dynamically scales web worker replicas based on load.
typo3-secrets manifest with secure credentials for db-password, db-user, and db-name./ routing.kubectl get pods -n typo3-project to verify that MariaDB, Redis, and TYPO3 pods show 1/1 or 2/2 in the Ready column.kubectl get hpa typo3-hpa -n typo3-project to confirm that current CPU utilization metrics are actively being reported by Metrics Server.This template provisions a fully isolated, auto-scaling TYPO3 CMS stack on Kubernetes complete with MariaDB storage, Redis caching, PVC persistence, and NGINX Ingress routing.