# Create a cluster

> Two wizards, two cluster shapes. Pick K3s (Starter) on one AWS instance for dev and side projects, EKS (Production) for live traffic.

A **cluster** is where your deployments run. Ownkube provisions two shapes in your AWS account: **K3s (Starter)** ([K3s](https://github.com/k3s-io/k3s) on one AWS instance, cheap and fast) and **EKS (Production)** (managed [EKS](https://aws.amazon.com/eks/), highly available across availability zones).

Start at your [**dashboard**](https://app.ownkube.io/dashboard).

## Before you start

- A [connected AWS account](/docs/guides/connect-aws). You can't create a cluster without one.
- An idea of what you'll run on it. Dev, staging, or a side project? Starter. Production with real traffic? Production.

## The two flows

#### K3s (Starter)

A single EC2 instance running lightweight Kubernetes. **Free** Ownkube platform fee. You only pay AWS for the EC2 instance, and AWS Activate or other startup credits cover that in full. Provisions in about 5 minutes. Best for dev, staging, side projects, and small production workloads.

1. **Start the wizard**

   Open the create-cluster wizard from your [dashboard](https://app.ownkube.io/dashboard) and select **Deploy on EC2**.

2. **Name and target**

   Pick a cluster name (e.g. `side-project`, `dev`), your AWS account, and a region. Names are lowercase, alphanumeric, with dashes.

3. **Pick an instance type**

   | Instance | vCPU | Memory | ~EC2 cost | Good for |
   |---|---|---|---|---|
   | `t3.medium` | 2 | 4 GiB | ~\$30 / mo | First apps, light prototypes |
   | `t3.large` | 2 | 8 GiB | ~\$60 / mo | Small production web + db |
   | `t3.xlarge` | 4 | 16 GiB | ~\$120 / mo | Multi-service workloads |
   | `t3.2xlarge` | 8 | 32 GiB | ~\$240 / mo | Busy workloads on one node |

   No Ownkube platform fee on top, you pay AWS only. AWS Activate or other startup credits cover these EC2 costs in full.

4. **Review and create**

   Starter clusters skip the separate networking and compute steps. Confirm the summary and click **Create cluster**. Provisioning takes about 5 minutes.

#### EKS (Production)

Managed Kubernetes with node autoscaling, highly available across availability zones. **\$5 / vCPU + \$1 / GB RAM** per month, metered per second on requested resources. Provisions in about 10 minutes.

1. **Start the wizard**

   Open the create-cluster wizard from your [dashboard](https://app.ownkube.io/dashboard) and select **Deploy on EKS**.

2. **Details**

   Pick a cluster name, your AWS account, region, and Kubernetes version. Defaults are typically fine.

3. **Networking**

   Accept defaults unless your VPC has conflicts.

   - **Pods CIDR**, default `10.244.0.0/16`
   - **Services CIDR**, default `10.96.0.0/12`

   Change these only if they'd clash with something you're already running.

4. **Compute**

   Drag **Workload vCPUs** and **Memory** to your starting size. Defaults: 8 vCPU / 16 GiB. Autoscaling adds and removes nodes automatically once the cluster is live. You're picking the starting capacity.

5. **Review and create**

   Confirm the review summary with estimated monthly cost and click **Create cluster**. Provisioning takes about 10 minutes.

## What happens during provisioning

1. **Account setup runs once per AWS account**

   On your first cluster, Ownkube creates shared IAM roles and a regional S3 bucket for state. This takes about a minute and only happens once per AWS account.

2. **VPC and networking**

   A new VPC, subnets (public and private across AZs for EKS), NAT, and security groups are created for the cluster.

3. **Cluster control plane**

   For EKS, the managed control plane is provisioned. For K3s, the EC2 instance is launched and bootstrapped.

4. **Platform components**

   Ownkube installs the internal components that make the platform work: deployment pipeline, public routing, TLS, metrics collection.

5. **Cluster becomes active**

   The cluster status flips to **active** on the dashboard. You can start creating deployments.

## After creation

Once active, the cluster detail page in your [dashboard](https://app.ownkube.io/dashboard) lets you:

- Review **telemetry**: node count, vCPU, memory, active deployments
- Adjust **compute capacity** on EKS
- View the cluster's **IAM role** and **VPC** details
- Upgrade the **platform version** when new versions are available
- **Delete** the cluster when you're done with it

See [Clusters](/docs/features/clusters) for the full reference.

## Limits and constraints

- **One region per cluster.** Clusters can't span regions. Create separate clusters in separate regions.
- **Cluster types can't convert.** You can't turn a K3s cluster into EKS. Create a new EKS cluster and move deployments.
- **Plan limits** cap the number of clusters and total vCPU / RAM. See [Pricing](/docs/configuration/pricing) for tier limits.

- [Deploy your first app](/docs/guides/deploy-first-app)
- [Clusters](/docs/features/clusters)

---

**Don't see a feature you need?** Email [support@ownkube.io](mailto:support@ownkube.io?subject=Feature%20request). Ownkube is shaped by the teams using it and we ship what our users ask for.
