LogoLogo
  • Welcome to Release
  • Getting started
    • Quickstart
    • Create an account
    • Prepare to use Release
    • Create an application
      • Create custom application
      • Create from template
      • Servers vs runnables
    • Create an environment
  • Guides and examples
    • Domains and DNS
      • Manage domains
      • DNS and nameservers
        • Configure GoDaddy
        • Configure Cloudflare
        • Configure Namecheap
        • Other DNS hosts
      • Routing traffic
    • Example applications
      • Full stack voting app
      • Flask and RDS counter app
      • Static site with Gatsby
      • Golang with Postgres and Nginx
      • WordPress with MySQL
      • Spring and PostgreSQL
      • Terraform and Flask
      • OpenTelemetry demo
      • Load balancer with hostname
      • Static JavaScript service
      • SSH bastion access to services
      • ngrok and OAuth for private tunnels
      • Using OAuth Proxy
      • Hybrid Docker and static site
      • App Imports: Connecting two applications
      • Example library
    • Running instances
      • Cron jobs
      • Jobs
      • Using Helm charts
      • Using terminal
      • Viewing logs
      • Troubleshooting
        • ImagePullBackoff error
        • CrashLoopBackoff error
        • Exit codes
        • OOM: out of memory
    • Advanced guides
      • Containers guide
      • Application guide
      • Kubernetes guide
      • Create a cluster
      • Upgrade a cluster
      • Managing node groups
      • Patch node groups
      • Hostnames and rules
      • Serve traffic on multiple ports
      • Configure access to your K8s cluster
      • Designing for multiple environments
      • Microservices architecture
      • Monitoring your clusters
      • Performance tuning
      • Visibility and monitoring
      • Working with data
        • Container-based data
        • Seeding and migration
        • Cloud-provided data
        • Golden images
        • Third party
      • Pausing Instant Datasets
        • Application pausing schedules
        • Pause/resume environments
      • Infrastructure as code
        • Terraform
  • Reference documentation
    • Account settings
      • Account info
      • Managing users
      • Build settings
        • Build arguments
        • Build SSH keys
      • Add integrations
      • View clusters and cloud integrations
      • Add datasets
      • Environment handles
    • Workflows in Release
      • Stages of workflows
      • Serial deployments
      • Parallel deployments
      • Rolling deployments
      • Rainbow deployments
    • Networking
      • Network architecture (AWS)
      • Network architecture (GCP)
      • Ingresses
      • IP addresses
      • Cloud-provided services
      • Third-party services
    • Release environment versioning
    • Application settings
      • Application Template
        • Schema definition
      • Default environment variables
      • GitHub
      • Pull requests
      • GitOps
      • Just-in-time file mounts
      • Primary App Link
      • Create application FAQ
      • App-level build arguments
      • Parameters
      • Workspaces
    • End-to-end testing
    • Environment settings
      • Environment configuration
      • Environment variables
        • Environment variable mappings
        • Secrets vaults
        • Using Secrets with GitOps
        • Kubernetes Secrets as environment variables
        • Managing legacy Release Secrets
    • Environment expiration
    • Environment presets
    • Instant datasets on AWS
    • Instant datasets on GCP
    • Instant dataset tasks
      • Tonic Cloud
      • Tonic On-Premise
    • Cloud resources
    • Static service deployment
    • Helm
      • Getting started
      • Version-controlled Helm charts
      • Open-source charts
      • Building Docker images
      • Ingress and networking
      • Configuration
    • GitOps
    • The .release.yaml file
    • Docker Compose conversion support
    • Reference examples
      • Adding and removing services
      • Managing service resources
      • Adding database containers to the Application Template
      • Stock Off-The-Shelf Examples
    • Release API
      • Account Authentication
      • Environments API
        • Create
        • Get
        • Setup
        • Patch
      • User Authentication
      • Environment Presets API
        • Get Environment Preset List
        • Get Environment Preset
        • Put Environment Preset
  • Background concepts
    • How Release works
  • Frequently asked questions
    • Release FAQ
    • AWS FAQ
    • Docker FAQ
    • JavaScript FAQ
  • Integrations
    • Integrations overview
      • Artifactory integration
      • Cloud integrations (AWS)
        • AWS guides
        • Grant access to AWS resources
        • AWS how to increase EIP quota
        • Control your EKS fleet with systems manager
        • Managing STS access
        • AWS Permissions Boundaries
        • Private ECR Repositories
        • Using an Existing AWS VPC
        • Using an Existing EKS Cluster
      • Docker Hub integration
      • LaunchDarkly integration
      • Private registries
      • Slack integration
      • Cloud integrations (GCP)
        • GCP Permissions Boundary
      • Datadog Agent
      • Doppler Secrets Manager
      • AWS Secrets Management
    • Source control integrations
      • GitHub
        • Pull request comments
        • Pull request labels
        • GitHub deployments
        • GitHub statuses
        • Remove GitHub integration
      • Bitbucket
      • GitLab
    • Monitoring and logging add-ons
      • Datadog
      • New Relic
      • ELK (Elasticsearch, Logstash, and Kibana)
  • Release Delivery
    • Create new customer integration
    • Delivery guide
    • Release to customer account access controls
    • Delivery FAQs
  • Release Instant Datasets
    • Introduction
    • Quickstart
    • Security
      • AWS Instant Dataset security
    • FAQ
    • API
  • CLI
    • Getting started
    • Installation
    • Configuration
    • CLI usage example
    • Remote development environments
    • Command reference
      • release accounts
        • release accounts list
        • release accounts select
      • release ai
        • release ai chat
        • release ai config-delete
        • release ai config-init
        • release ai config-select
        • release ai config-upsert
      • release apps
        • release apps list
        • release apps select
      • release auth
        • release auth login
        • release auth logout
      • release builds
        • release builds create
      • release clusters
        • release clusters exec
        • release clusters kubeconfig
        • release clusters shell
      • release datasets
        • release datasets list
        • release datasets refresh
      • release deploys
        • release deploys create
        • release deploys list
      • release development
        • release development logs
        • release development start
      • release environments
        • release environments config-get
        • release environments config-set
        • release environments create
        • release environments delete
        • release environments get
        • release environments list
        • release environments vars-get
      • release gitops
        • release gitops init
        • release gitops validate
      • release instances
        • release instances exec
        • release instances logs
        • release instances terminal
  • Release.ai
    • Release.ai Introduction
    • Getting Started
    • Release.ai Templates
    • Template Configuration Basics
    • Using GPU Resources
    • Custom Workflows
    • Fine Tuning LlamaX
    • Serving Inference
Powered by GitBook
On this page
  • Prerequisites
  • Create a new cluster
  • Choosing an IP range or CIDR block
  • Managing your cluster and node groups
  • Choosing a node group size and type
  • Using a Release-generated domain
  • Creating a cluster with elevated permissions
  • Migrating apps to a new cluster

Was this helpful?

  1. Guides and examples
  2. Advanced guides

Create a cluster

PreviousKubernetes guideNextUpgrade a cluster

Last updated 10 months ago

Was this helpful?

Prerequisites

An important prerequisite to creating a cluster is to create at least one domain to use with your clusters. See Manage domains. If you do not want to create a custom domain with your own DNS, you can always generate a shared namespace under our customer-shared domain name. See for more details.

Generally, the prerequisites for creating a cluster in AWS and GCP are low, but we will identify key items in a warning box like this. Pay attention to these warnings and see if they apply to you.

Create a new cluster

To create a cluster, navigate to Configuration and then to the Clusters tab. Press Create cluster and select the existing cloud integration that you want to create the cluster in. Choose a region, an IP range, the Kubernetes version, domain to use with this cluster, and a cluster name.

If you are using AWS and want to deploy this new cluster into an existing VPC, please see Using an Existing AWS VPC.

Note that only account owners may create new clusters.

Click Create Cluster button at the bottom right. Note that only account owners may create new clusters.

This will spin up a new Kubernetes cluster in your cloud provider (for example, using EKS if you've integrated with AWS). Note that this will create compute resources in your cloud provider account, which you will be billed for.

Choosing an IP range or CIDR block

If you're not sure which IP range to use, you can choose any one from the dropdown.

If you are using an existing VPC and networking layout, the CIDR block will be in use or might not be available in the dropdown. If you know what you are doing, type the existing CIDR block range into the field to override the Release suggestions.

Release environments run inside your cloud provider account, and these might need to connect to existing services and applications that run there. Conversely, you might need to fully isolate your Release environments from existing services.

To keep Release environments from interfering with existing applications, by default, Release selects a network address or CIDR block that is distinct from the other network addresses you use in your enterprise. If you know which CIDR block to use, go ahead and select that. Release will build a virtual private cloud (VPC) with the unique CIDR block you provide.

Managing your cluster and node groups

After creating your cluster, you'll automatically have a default node group. If you want to reduce costs (for example, if you're still experimenting with Release), you can set the minimum, maximum, and desired node size to 1 (or even 0).

From the cluster settings page, you can also upgrade the cluster, set it as default, or add more node groups.

Choosing a node group size and type

Note that you can set a minimum and maximum number of nodes and the type of node that your cloud provider will use to host the workloads.

The size of cluster you need will depend on your application stack, use case, and team size. Unless you know for sure how many environments you will be running at once and what each workload will be, the best option is to choose the defaults (min: 3, max: 10, type: 16GiB/4 CPUs).

With Release, you can seamlessly upgrade, increase, decrease, or resize your cluster later without any interruption, so you can always change this later if you need more compute power or want to reduce your cloud bill.

In both AWS and GCP, there may be resource limits and quotas that apply. If you are using a new account or project dedicated specifically to Release, you may not need to adjust the defaults. However, if you are sharing resources in an existing account or project, you may run into an issue and receive an error message that hopefully sheds light on the problem. You will need to adjust or correct any problems before continuing. We will gladly help you, so feel free to reach out to your support contact for help.

Using a Release-generated domain

You can choose to use a Release-generated domain by selecting "Generate a Subdomain" when you create a cluster. This will generate a subdomain under one of our domains that will be used for the URLs generated for your environments.

Creating a cluster with elevated permissions

By default, clusters are created with no extra permissions or roles. If you require elevated permissions on your cluster, you can turn on the "Use elevated permissions when creating clusters " setting on your Organization Settings page.

When this setting is on, any new clusters will be created with the AdministratorAccess role attached.

Migrating apps to a new cluster

When creating a new cluster, any existing environments will need to be recreated fresh or they will continue to try and talk to the old cluster that no longer exists.

Using a Release-generated domain
Create cluster
Edit cluster node group
Create cluster with subdomain