> ## Documentation Index
> Fetch the complete documentation index at: https://www.qovery.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Clusters

> Manage your Kubernetes clusters with Qovery

<Info>
  For detailed cluster installation instructions, see [Kubernetes Installation
  Guide](/installation/kubernetes). For troubleshooting, check the
  [Troubleshooting Section](#troubleshooting).
</Info>

## Managing your Clusters with Qovery

### Creating a Cluster

To create a new cluster:

1. Open the [Qovery Console](https://console.qovery.com)
2. Navigate to the **Clusters** tab
3. Click **Add Cluster**
4. Follow the provider-specific guide for your cloud platform:

<CardGroup cols={2}>
  <Card title="AWS EKS" icon="https://mintcdn.com/qovery/Nvnl0g5BHzA0XQmy/images/logos/cloud-providers/aws-icon.svg?fit=max&auto=format&n=Nvnl0g5BHzA0XQmy&q=85&s=12ef689645255696bfa4054d6e3aeaff" href="/configuration/integrations/kubernetes/eks/managed" badge="Recommended" width="24" height="24" data-path="images/logos/cloud-providers/aws-icon.svg">
    Create managed EKS cluster
  </Card>

  <Card title="AWS EKS Anywhere" icon="https://mintcdn.com/qovery/Nvnl0g5BHzA0XQmy/images/logos/cloud-providers/aws-icon.svg?fit=max&auto=format&n=Nvnl0g5BHzA0XQmy&q=85&s=12ef689645255696bfa4054d6e3aeaff" href="/configuration/integrations/kubernetes/eks/eks-anywhere" width="24" height="24" data-path="images/logos/cloud-providers/aws-icon.svg">
    Create EKS Anywhere cluster directly from Qovery. Contact us to enable this
    integration.
  </Card>

  <Card title="Azure AKS" icon="https://mintcdn.com/qovery/Nvnl0g5BHzA0XQmy/images/logos/cloud-providers/azure-icon.svg?fit=max&auto=format&n=Nvnl0g5BHzA0XQmy&q=85&s=0d214ad250aa99938f4f1796bb506fb9" href="/configuration/integrations/kubernetes/aks/managed" width="24" height="24" data-path="images/logos/cloud-providers/azure-icon.svg">
    Create managed AKS cluster
  </Card>

  <Card title="GCP GKE" icon="https://mintcdn.com/qovery/Nvnl0g5BHzA0XQmy/images/logos/cloud-providers/gcp-icon.svg?fit=max&auto=format&n=Nvnl0g5BHzA0XQmy&q=85&s=e38f243f4f39d204ebc65102ab2a7e3c" href="/configuration/integrations/kubernetes/gke/managed" width="24" height="24" data-path="images/logos/cloud-providers/gcp-icon.svg">
    Create managed GKE cluster
  </Card>

  <Card title="Scaleway Kapsule" icon="https://mintcdn.com/qovery/Nvnl0g5BHzA0XQmy/images/logos/cloud-providers/scaleway-icon.svg?fit=max&auto=format&n=Nvnl0g5BHzA0XQmy&q=85&s=98d01c5b36e963048f139a17f6ff72a8" href="/configuration/integrations/kubernetes/scaleway/managed" width="24" height="24" data-path="images/logos/cloud-providers/scaleway-icon.svg">
    Create managed Kapsule cluster
  </Card>
</CardGroup>

### Managed Cluster by Qovery vs Self-Managed

Qovery offers two deployment models for your Kubernetes clusters:

<CardGroup cols={2}>
  <Card title="Qovery-Managed Cluster" icon="wand-magic-sparkles">
    **Zero Configuration**

    Qovery creates and manages your Kubernetes cluster in your cloud account. Automated setup, updates, and scaling.

    ✅ Full automation
    ✅ 15-30 minute setup
    ✅ Best practices built-in
    ✅ Auto-scaling (with Karpenter on AWS)
    ✅ Automatic Kubernetes upgrades
    ✅ Monitoring and alerting included
  </Card>

  <Card title="Self-Managed Cluster (BYOK)" icon="server" href="/configuration/integrations/kubernetes/byok">
    **Full Control**

    Connect your existing Kubernetes cluster to Qovery. You manage the cluster infrastructure, Qovery manages your application deployments.

    ✅ Use existing clusters
    ✅ Custom configurations
    ✅ Compliance requirements
    ✅ Multi-tenant setups
    ✅ Your upgrade schedule
    ✅ Bring your own tools
  </Card>
</CardGroup>

#### Comparison

| Feature                       | Qovery-Managed                   | Self-Managed (BYOK)              |
| ----------------------------- | -------------------------------- | -------------------------------- |
| **Setup Time**                | 15-30 minutes                    | 10-15 minutes (existing cluster) |
| **Infrastructure Management** | Fully automated by Qovery        | You manage infrastructure        |
| **Kubernetes Upgrades**       | Automatic, tested by Qovery      | You control timing and process   |
| **Auto-scaling**              | Built-in (Karpenter on AWS)      | You configure                    |
| **Monitoring**                | Included                         | You provide                      |
| **Cost**                      | Infrastructure + Qovery platform | Infrastructure + Qovery platform |
| **Customization**             | Standard configurations          | Full control                     |
| **Best For**                  | Teams wanting automation         | Teams with specific requirements |

<Info>
  For production workloads, we recommend **Qovery-Managed clusters** for their
  automated updates, built-in best practices, and reduced operational overhead.
  Choose **BYOK** if you have specific compliance requirements or existing
  cluster investments.
</Info>

### Overview

Once your cluster is created, the cluster card displays comprehensive information about your cluster's configuration and health:

**Cluster Details:**

* Deployed nodes and their current statuses
* Instance type configuration (min/max instances)
* Reserved resources: CPU, memory, and disk capacity
* Current Kubernetes version with upgrade warnings if applicable
* Last deployment timestamp and status
* Karpenter nodepool grouping (if using Karpenter)
* Per-node resource allocation

<Frame>
  <img src="https://mintcdn.com/qovery/9CNZQIdUELQe9KKR/images/configuration/clusters/cluster-overview.png?fit=max&auto=format&n=9CNZQIdUELQe9KKR&q=85&s=d41111f24dc268a50b5263fe763a0bfa" alt="Cluster Overview" width="3164" height="2070" data-path="images/configuration/clusters/cluster-overview.png" />
</Frame>

### Statuses

Qovery tracks cluster health using two status categories:

#### Cluster Statuses

| Status                                                                           | Description                               |
| -------------------------------------------------------------------------------- | ----------------------------------------- |
| <Icon icon="circle-check" iconType="solid" color="green" /> **Running**          | Cluster is healthy and operational        |
| <Icon icon="triangle-exclamation" iconType="solid" color="yellow" /> **Warning** | Minor issues detected, requires attention |
| <Icon icon="circle-xmark" iconType="solid" color="red" /> **Error**              | Critical issues, intervention required    |
| <Icon icon="circle" iconType="regular" color="gray" /> **Status unavailable**    | Cluster unreachable or offline            |

#### Deployment Statuses

| Status                        | Description                                       |
| ----------------------------- | ------------------------------------------------- |
| **Deployment Queued**         | Deployment is waiting in the queue                |
| **Deploying**                 | Deployment is currently in progress               |
| **Last Deployment Failed**    | The most recent deployment encountered errors     |
| **Last Deployment Succeeded** | The most recent deployment completed successfully |

### Performing Actions on Clusters

Available cluster operations and their cloud provider compatibility:

| Action      | AWS | Azure | GCP | Scaleway | Description                                                  |
| ----------- | --- | ----- | --- | -------- | ------------------------------------------------------------ |
| **Update**  | ✅   | ✅     | ✅   | ✅        | Redeploy cluster after configuration changes                 |
| **Stop**    | ✅   | ✅     | ✅   | ✅        | Temporarily pause cluster (provider charges may still apply) |
| **Restart** | ✅   | ✅     | ✅   | ✅        | Resume a stopped cluster                                     |
| **Delete**  | ✅   | ✅     | ✅   | ✅        | Permanently remove cluster                                   |

To perform an action:

1. Navigate to your cluster page
2. Click the action dropdown menu
3. Select the desired action
4. Track progress through cluster logs

#### Updating a Cluster

Redeploys your cluster after making configuration changes through the Qovery Console or API.

#### Stopping a Cluster

Temporarily pauses your cluster to reduce costs.

<Warning>
  Some cloud provider charges may continue even when the cluster is stopped
  (e.g., storage, reserved IPs, load balancers).
</Warning>

#### Restarting a Cluster

Resumes a stopped cluster and redeploys all services.

#### Deleting a Cluster

Permanently removes your cluster. You have three deletion options:

1. **Default (Recommended)**: Complete cleanup
   * Deletes all Qovery-managed resources
   * Removes cloud provider infrastructure
   * No residual costs

2. **Delete on cloud provider and Qovery configuration**: Manual database handling
   * Deletes cluster from cloud provider
   * Removes Qovery configuration
   * Requires manual database cleanup

3. **Delete Qovery configuration only**: Keep cloud resources
   * Removes Qovery management only
   * Cloud infrastructure continues running
   * Continue managing manually in cloud console

<Warning>
  Cluster deletion is **permanent and irreversible**. Ensure you have backups
  before proceeding.
</Warning>

#### Additional Actions

**Audit Logs:**

* Access complete cluster activity history
* Track configuration changes and deployments
* Available for compliance and troubleshooting

**Cluster ID:**

* Retrieve unique cluster identifier
* Required for API operations and support tickets

**Kubeconfig:**

* Download Kubernetes configuration file
* Enable direct kubectl access
* Use for advanced debugging and management

<Warning>
  **Security Best Practice**: Kubeconfig provides cluster-admin access. Store
  securely and never commit to version control.
</Warning>

## Logs

Access cluster logs for troubleshooting and monitoring:

1. Navigate to your cluster page
2. Click **Logs** or **View Logs**
3. Use the tab system to view:
   * **Cluster Info**: General cluster information
   * **Error Details**: Specific error messages and stack traces

<Frame>
  <img src="https://mintcdn.com/qovery/9CNZQIdUELQe9KKR/images/configuration/clusters/cluster_logs_access.png?fit=max&auto=format&n=9CNZQIdUELQe9KKR&q=85&s=0ea2b33f8a601415e90ac8ab14ce515f" alt="Access Cluster Logs" width="3164" height="2070" data-path="images/configuration/clusters/cluster_logs_access.png" />
</Frame>

**Successful Operations:**

<Frame>
  <img src="https://mintcdn.com/qovery/ziWdn5St6rf4bcBc/images/configuration/clusters/ok-infra-logs.jpg?fit=max&auto=format&n=ziWdn5St6rf4bcBc&q=85&s=802d38e7ed9e30fcf19215542a74d208" alt="Successful Cluster Logs" width="3164" height="2070" data-path="images/configuration/clusters/ok-infra-logs.jpg" />
</Frame>

**Error Logs:**

<Frame>
  <img src="https://mintcdn.com/qovery/9CNZQIdUELQe9KKR/images/configuration/clusters/error-infra-logs.jpg?fit=max&auto=format&n=9CNZQIdUELQe9KKR&q=85&s=2ab81fc0d645fc59f03c669e9553177f" alt="Cluster Error Logs" width="3164" height="2070" data-path="images/configuration/clusters/error-infra-logs.jpg" />
</Frame>

## Custom Domain and Wildcard TLS (Beta)

By default, Qovery assigns a subdomain under one of its managed domains (randomly assigned) to your cluster services. However, Let's Encrypt rate limits may affect certificate issuance.

To use your own custom domain with wildcard TLS certificates, Qovery supports **Cloudflare** and **AWS Route53** integration.

### Cloudflare Setup

<Steps>
  <Step title="Create Cloudflare API Token">
    1. Log into your Cloudflare account
    2. Go to **My Profile** → **API Tokens**
    3. Click **Create Token**
    4. Use the **Edit zone DNS** template or create a custom token
    5. Grant these permissions:
       * Zone → DNS → Edit
       * Zone → Zone → Read
    6. Set Zone Resources to include your domain
    7. Create and copy the token
  </Step>

  <Step title="Contact Qovery Support">
    Contact Qovery Support via your usual channel (in-app chat, Slack, or email) with the following information:

    * Your cluster ID
    * Your domain name (e.g., `example.com`)
    * Your Cloudflare API token
    * Your Cloudflare account email

    The Qovery team will configure the integration for you.
  </Step>

  <Step title="Verify DNS">
    Once configured, Qovery will automatically manage DNS records in your Cloudflare account
  </Step>
</Steps>

### AWS Route53 Setup

<Steps>
  <Step title="Create AWS IAM Credentials">
    1. Log into your AWS Console
    2. Navigate to **IAM** → **Users**
    3. Create a new user or select an existing one
    4. Attach the policy with these permissions:
       ```json theme={null}
        {
          "Version": "2012-10-17",
          "Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "route53:ChangeResourceRecordSets",
                "route53:ListResourceRecordSets",
                "route53:ListTagsForResources"
              ],
              "Resource": [
                "arn:aws:route53:::hostedzone/*"
              ]
            },
            {
              "Effect": "Allow",
              "Action": [
                "route53:ListHostedZones",
                "route53:ListHostedZonesByName"
              ],
              "Resource": [
                "*"
              ]
            },
            {
              "Effect": "Allow",
              "Action": "route53:GetChange",
              "Resource": "arn:aws:route53:::change/*"
            }
          ]
        }
       ```
    5. Create and save the **Access Key ID** and **Secret Access Key**
  </Step>

  <Step title="Get Hosted Zone ID (Optional)">
    1. In AWS Console, go to **Route53** → **Hosted zones**
    2. Select your domain
    3. Copy the **Hosted Zone ID** (format: `Z0123456789ABCDEFGHIJ`)

    <Info>
      The Hosted Zone ID is optional. If not provided, Qovery will auto-detect it.
    </Info>
  </Step>

  <Step title="Contact Qovery Support">
    Contact Qovery Support via your usual channel (in-app chat, Slack, or email) with the following information:

    * Your cluster ID
    * Your domain name (e.g., `example.com`)
    * Your AWS Access Key ID
    * Your AWS Secret Access Key
    * Your AWS region (e.g., `us-east-1`)
    * Your Hosted Zone ID (optional)

    The Qovery team will configure the integration for you.
  </Step>

  <Step title="Verify DNS">
    Once configured, Qovery will automatically create and manage DNS records in your Route53 hosted zone
  </Step>
</Steps>

<Info>
  This feature is currently in **Beta**. Both **Cloudflare** and **AWS Route53**
  are supported. Additional DNS providers will be added in future releases.
</Info>

## AWS Account Cleanup

If cluster deletion fails or leaves resources behind, you can manually clean up using AWS Console tags.

### Manual Cleanup Steps

<Steps>
  <Step title="Open AWS Console">
    Navigate to the [AWS Resource Groups & Tag Editor](https://console.aws.amazon.com/resource-groups/tag-editor)
  </Step>

  <Step title="Search for Qovery Resources">
    1. Select **All supported resource types** 2. Add tag filter: `ClusterId` or
       `QoveryCluster` 3. Search for resources
  </Step>

  <Step title="Review and Delete">
    1. Review the list of tagged resources
    2. Manually delete each resource through AWS Console
    3. Common resources to check:
       * EC2 instances
       * EKS clusters
       * VPCs and networking components
       * Load balancers
       * EBS volumes
       * Security groups
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/qovery/Wl4u2m15iDLffsD6/images/configuration/clusters/aws-console-cluster-cleanup.jpg?fit=max&auto=format&n=Wl4u2m15iDLffsD6&q=85&s=8ff937b1f7efb4034417cfc6b8464fa3" alt="AWS Console Cleanup" width="1214" height="691" data-path="images/configuration/clusters/aws-console-cluster-cleanup.jpg" />
</Frame>

<Warning>
  Manual cleanup should only be performed if automatic Qovery deletion fails.
  Always verify resources before deletion to avoid data loss.
</Warning>

## FAQ

<AccordionGroup>
  <Accordion title="What is a cluster?">
    A cluster is a group of computing resources (nodes) that work together to run your applications. Learn more in our [Basic Concepts](/basic-concepts) guide.
  </Accordion>

  <Accordion title="Why do I need a cluster?">
    Clusters provide several key benefits:

    * **Kubernetes orchestration**: Automatic container management, scaling, and healing
    * **Disaster recovery**: Built-in redundancy and failover capabilities
    * **Auto-scaling**: Automatically adjust resources based on demand
    * **Environment isolation**: Separate development, staging, and production workloads
    * **Multi-region deployment**: Deploy applications closer to your users
  </Accordion>

  <Accordion title="What instance types are available?">
    Instance availability varies by cloud provider:

    **AWS**: 400+ instance types available

    * General purpose, compute optimized, memory optimized, storage optimized, GPU instances
    * Supports both x86\_64 and ARM architectures (Graviton)

    **Scaleway**: Multiple instance ranges

    * From cost-effective shared instances to dedicated high-performance options
    * x86\_64 architecture

    **GCP**: GKE auto-pilot

    * Fully managed node provisioning
    * Automatic optimization based on workload requirements
    * x86\_64 architecture

    **Azure**: Various VM series

    * Multiple performance tiers and specialized workloads
    * x86\_64 architecture

    <Info>
      Architecture compatibility: Ensure your container images support your chosen architecture (x86\_64 or ARM).
    </Info>
  </Accordion>

  <Accordion title="How does Qovery handle Kubernetes upgrades?">
    Qovery follows a careful upgrade process:

    1. **Testing period**: Each new Kubernetes version undergoes 1 month of internal testing
    2. **Rollout**: After testing, updates roll out to customers over 3 weeks
    3. **Manual upgrades**: Option available for customers who want to upgrade immediately

    <Warning>
      **Never upgrade Kubernetes manually** through your cloud provider console. This can cause incompatibilities with Qovery components. Always use Qovery-managed upgrades.
    </Warning>

    You'll receive notifications when new versions are available for your clusters.
  </Accordion>

  <Accordion title="What happens when vulnerabilities are discovered?">
    Security is our main concern. When vulnerabilities surface:

    1. **Rapid identification**: Continuous monitoring of security databases
    2. **Impact assessment**: Evaluate severity and affected systems
    3. **Mitigation solutions**: Develop and test patches
    4. **Customer communication**: Transparent notifications with recommended actions
    5. **Deployment assistance**: Guided remediation process

    Critical security patches may be applied automatically after customer notification.
  </Accordion>

  <Accordion title="What is a mirroring registry?">
    A mirroring registry is a private container registry that caches images from public registries, providing:

    * Faster image pulls (cached locally)
    * Protection against rate limits
    * Improved reliability and availability
    * Better control over image versions

    Learn more in our [Image Mirroring documentation](/configuration/deployment/image-mirroring).
  </Accordion>

  <Accordion title="Why does my cluster show 'unavailable' status?">
    An unavailable status can occur due to:

    **Common Causes:**

    * Cluster manually stopped through cloud provider
    * Cloud provider outage or service disruption
    * Network connectivity issues
    * Accidental deletion of critical resources
    * Control plane issues

    **Troubleshooting Steps:**

    1. Check cloud provider status page for outages
    2. Verify cluster hasn't been manually stopped in cloud console
    3. Review Qovery cluster logs for error messages
    4. Check cloud credentials are still valid
    5. Contact Qovery support if issue persists

    <Warning>
      Always manage clusters through Qovery Console to avoid status inconsistencies. Manual changes in cloud provider consoles can cause unexpected behavior.
    </Warning>
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Create Environment" icon="layer-group" href="/configuration/environment">
    Set up your first environment on the cluster
  </Card>

  <Card title="Deploy Application" icon="rocket" href="/getting-started/guides/getting-started/deploy-your-first-application">
    Deploy your first application
  </Card>

  <Card title="Configure Monitoring" icon="chart-line" href="/configuration/integrations/observability/qovery-observe">
    Set up observability and monitoring
  </Card>

  <Card title="Secure Your Cluster" icon="shield-check" href="/getting-started/guides/qovery-101/secure">
    Implement security best practices
  </Card>

  <Card title="Kubernetes Changelog" icon="newspaper" href="https://www.qovery.com/changelog---kubernetes">
    Kubernetes cluster related updates
  </Card>
</CardGroup>
