Deploy Nextcloud on CCE
This guide walks through deploying a highly available Nextcloud setup on an T Cloud Public Cloud Container Engine (CCE) cluster, using Object Storage Service (OBS) for file storage and Relational Database Service (RDS) for Nextcloud's database. We will use the Nextcloud Helm charts for that matter.
Prerequisites
-
Cloud Container Engine (CCE) cluster
- A CCE cluster with sufficient resources.
kubectlconfigured to access the cluster.- An ingress controller installed on the cluster (we will use Nginx Ingress Controller in this blueprint, see Installing Nginx Ingress Controller).
- DNS entry pointing to the Ingress load balancer and TLS certificate for the Nextcloud domain (e.g., via cert-manager, see Issue an ACME Certificate).
-
Object Storage Service (OBS)
- A bucket created in OBS for Nextcloud primary file storage, see Creating a Bucket.
- OBS credentials (Access Key, Secret Key) with read/write permissions on the bucket, see Obtaining Access Keys (AK/SK).
-
Relational Database Service (RDS)
- A MySQL (or PostgreSQL) instance deployed in RDS, ideally in HA mode across multiple AZs, see Getting Started with RDS for MySQL.
- Network connectivity: Configure RDS security group to allow access from CCE cluster nodes. If RDS is in a different VPC, ensure CCE cluster can access it (via VPC peering).
tipRDS auto-backup is recommended to ensure recovery from any database corruption or data loss.
importantRDS is not scaled via Kubernetes. Ensure that the RDS instance has sufficient storage and CPU resources to handle your workload. For more information read:
Solution Overview

- Nextcloud Application Pods: Scaled horizontally with HPA. This scales pods based on load to ensure high availability.
- Ingress: Nginx Ingress routes HTTPS traffic to Nextcloud Service.
- Object Storage: Nextcloud uses S3-compatible OBS as primary storage for user files.
- Database: External MySQL RDS instance for data storage.
- Cache (optional but recommended): Use Redis for caching to improve performance. You can deploy Redis on CCE or use a managed cache service like Distributed Cache Service (we will use Redis on top of CCE in this blueprint).
Creating a Namespace
Create a dedicated namespace:
kubectl create namespace nextcloud