Overview
Bring Your Own Kubernetes (BYOK) allows you to connect any Kubernetes cluster to Qovery. You maintain control over your cluster infrastructure while Qovery manages application deployments.Supported Kubernetes
Cloud Managed
- AWS EKS
- Google GKE
- Azure AKS
- Scaleway Kapsule
- DigitalOcean DOKS
Self-Managed
- Vanilla Kubernetes
- Rancher
- OpenShift
- k3s/k3d
- Tanzu
On-Premise
- EKS Anywhere
- Bare metal Kubernetes
- VMware vSphere
- Private cloud
Requirements
Kubernetes 1.24 or higher
kubectl access with cluster-admin permissions
LoadBalancer support (cloud or MetalLB for on-premise)
Storage class for persistent volumes
Ingress controller (Nginx or similar)
Metrics server installed
Quick Start
1
Prepare Cluster
Ensure requirements are met:
2
Get Qovery Agent
In Qovery Console:
- Settings → Clusters → Add Cluster
- Select “Bring Your Own Kubernetes”
- Download Helm values or kubectl manifests
3
Install Qovery Agent
Using Helm (recommended):
4
Verify Connection
What Qovery Installs
Core Components:- Qovery Agent (deployment manager)
- Qovery Shell Agent (for terminal access)
- Nginx Ingress Controller
- Cert-Manager (SSL certificates)
- External-DNS (domain management)
- Metrics Server
Networking Requirements
Inbound
- Port 443: HTTPS traffic to applications
- Port 80: HTTP traffic (redirects to 443)
Outbound
- Qovery API:
https://api.qovery.com - Container Registries: ECR, Docker Hub, GCR, etc.
- Git Providers: GitHub, GitLab, Bitbucket
Load Balancer
- Cloud Load Balancer
- MetalLB (On-Premise)
Automatically provisioned by cloud provider:
- AWS: ALB/NLB
- GCP: Google Cloud Load Balancer
- Azure: Azure Load Balancer
Storage Configuration
Ensure default storage class exists:- NFS: Network File System
- Ceph: Distributed storage
- Local Path: Local storage (not recommended for production)
Best Practices
Dedicated Namespace
Use dedicated
qovery namespace for Qovery componentsResource Quotas
Set resource quotas per namespace to prevent resource exhaustion
Network Policies
Implement network policies for namespace isolation
Regular Updates
Keep Kubernetes and Qovery agent updated regularly
Troubleshooting
Agent Not Connecting
Agent Not Connecting
Check:
- Agent pods running:
kubectl get pods -n qovery - Agent logs:
kubectl logs -n qovery -l app=qovery-agent - Outbound internet access from cluster
- API token is correct
Load Balancer Pending
Load Balancer Pending
For Cloud: Check cloud provider quotas and permissionsFor On-Premise: Install MetalLB and configure IP pool
Storage Issues
Storage Issues
Check:
- Storage class exists:
kubectl get sc - Default storage class set
- Provisioner is working
- Sufficient storage capacity