Create a cluster
Rather not read it all? Ask Nova this. It walks you through each step and does the ones it can when you approve.
Create a production-grade Kubernetes cluster in your own cloud account and let AstroPulse run it: Amazon EKS on AWS, Google Kubernetes Engine on Google Cloud, or Azure Kubernetes Service on Azure. The console walks you through it, and a dry run checks the whole cluster against your account before anything is created. You pay your cloud for the cluster directly.
The example creates eks-prod on Amazon EKS with a small On-Demand system group and a Spot platform group. Google Cloud and Azure take the same steps; their pages say what differs: EKS, GKE, AKS.
Before you start
- A cloud account you can approve a connection in: an AWS account, a Google Cloud project, or an Azure subscription with a resource group. The Connect step gives you the exact steps.
- Room in that account's quotas for the machines you pick.
- Already run a cluster? Register it instead.
In the console
Open Infrastructure › Kubernetes › New cluster. Each step ends with Continue to …; the next step opens once this one is complete. The wizard keeps your draft if you reload, and Manifest beside the steps shows the file it is building.
-
Name and cloud. Choose Bring your own account. Enter Cluster Name
eks-prod(your cluster's name, in AstroPulse and in your cloud), pick Amazon Web Services under Cloud, and pick the Regionus-west-2(the AWS region the cluster runs in; pick one near your users that offers the machines you need). Availability Zones lists the region's zones and which ones node groups use unless you pick zones for a group.Open zoom view -
Account. Under How Kubernetes runs, pick Amazon EKS. Self-hosted Kubernetes builds Kubernetes on virtual machines instead (Self-hosted Kubernetes). Under Your cloud account, enter the 12-digit Account ID (
aws sts get-caller-identityprints it), or pick an account listed after Connected:.Open zoom view -
Connect. Select Connect this account. A new tab opens your cloud's setup page: on AWS, a pre-filled CloudFormation stack to create. The step reads "Waiting for the setup to finish in Amazon Web Services" and moves on by itself once AstroPulse can reach the account. An account already connected for this cluster reads "Already connected to Amazon Web Services."; Check again checks it again.
Open zoom view How do I connect AWS account 123456789012 for eks-prod in us-west-2?Nova gives you the setup commands for your cloud. You run them; Nova does not connect the account itself.
-
Kubernetes. Keep AstroPulse default for Kubernetes Version and Managed node groups for Compute Mode. Auto Mode lets AWS add and remove machines and skips the Node groups step. Keep Amazon Linux 2023 (Recommended) as the AMI Family, and add Tags for your AWS resources if you want them.
Open zoom view GPU node groups need 1.36 or newerIf you pick a version, GPU node groups need Kubernetes 1.36 or newer.
astroctl cloud aws k8s-versionslists what EKS offers in your region. -
Network. Leave Use Existing VPC off: "A new VPC will be created with production-ready defaults." Turn it on to use your own VPC and subnets (Bring your own VPC).
Open zoom view Private nodesThe new VPC has a public and a private subnet in each of three zones. Nodes run in the private subnets and reach the internet through a NAT gateway; load balancers use the public ones.
-
Node groups. Select Add Node Group twice. Under Compute, keep Pick machine types and select Choose machines to pin machines from the catalog, or pick Request GPU hardware to name a GPU and let AstroPulse resolve the machines.
system(a name for your own node group): machine typem6i.large, Nodes1, Pricing On-Demand.platform: machine typesm6i.large,m5.large,m6a.largeandm7i.large, Nodes2, Pricing Spot, much cheaper, though AWS can take a node back at short notice. Several machine types give Spot more places to find capacity.- Leave both on All 3 zones, so each can place nodes in the region's first three zones.
Open zoom view Why two groupsAstroPulse's system pods, its agent and the add-on controllers, stay on the On-Demand
systemgroup, so one Spot reclaim cannot stop them all. With only Spot groups, the dry run on Review warns System pods run only on Spot nodes and asks for an On-Demand group with at least 1 node.The warning an all-Spot cluster gets.Open zoom view What it costsEstimated cost, beside the steps, adds up each node group per month and the cloud's charges outside the nodes, such as the control plane and the NAT gateways, with how each was priced. Charges billed by traffic, such as data transfer, may read Not metered. Storage is not included.
-
Notifications. Optional. Tick Email or Slack (Enterprise) to get cluster updates: creation progress and status changes, for every cluster in the organization. Owners also get approval requests this way. Nothing is saved until you create the cluster.
Open zoom view -
Review. The dry run starts by itself and checks the whole cluster against your account. You should see: Dry run passed, with All checks listed under it. A failed check says why and how to fix it. Manifest shows the file, and Create with astroctl has the same file to download.
Open zoom view Why did the dry run for eks-prod fail, and how do I fix it?Nova reads the dry run's findings and explains each one with its fix.
-
Create. Select Create eks-prod. The console says "Cluster requested"; select Open the cluster to follow it. The page shows each stage as it is provisioned and reads Ready and Connected once it is up.
Open zoom view Create eks-prod in us-west-2 with an On-Demand system group of one m6i.large and a Spot platform group of two nodes.Nova fills in the spec, checks it with the dry run, shows the plan, and creates the cluster when you approve.
You should see
The cluster's page, eks-prod, reads Ready. Node groups lists system and platform with the nodes you asked for, and Events shows every step of the create. If it stops, Events says why.
What the dry run checks
The dry run runs the same checks as the create, against your account, and changes nothing: the account connection, quotas, the machine types in each zone the nodes use, the network, and the Kubernetes version. A GPU node group shows the machines AstroPulse chose for it under Machines AstroPulse chose. Change anything and Review runs the dry run again on the new manifest; Continue to create opens once it passes.
What you choose later
Add-ons are not part of the create; install them once the cluster is ready (Next). Node groups, the Kubernetes version and tags change from the cluster's Update tab: Update and upgrade.
Other ways in
- SDK and API: the same manifest. See the API reference.
With astroctl
Connect the account for the cluster first, then apply the manifest. Review shows the same manifest under Create with astroctl, ready to download. To start from the template instead:
astroctl cloud aws connect --account-id 123456789012 --region us-west-2 --cluster-name eks-prod
astroctl infra k8s template eks > eks-prod.yaml
astroctl infra k8s apply -f eks-prod.yaml --dry-run
astroctl infra k8s apply -f eks-prod.yaml
123456789012 stands for your AWS account ID. The template is annotated; --schema on it lists every field. For Google Cloud and Azure, use astroctl cloud gcp connect or astroctl cloud azure connect and astroctl infra k8s template gke or aks. Every flag: astroctl infra k8s apply and astroctl cloud aws connect.
Settings
The settings every cloud shares. Each cloud's own settings are on its page.
spec.clusterNameRequiredThe cluster's name in AstroPulse and in your cloud.
-, starting and ending with a letter or number, up to 50 characters.spec.providerRequiredThe cloud the cluster runs in.
awsAmazon Web Services Amazon's cloud.azureMicrosoft Azure Microsoft's cloud.gcpGoogle Cloud Google's cloud.
spec.regionRequiredWhere the cluster runs.
astroctl cloud <aws|gcp|azure> regions listspec.provisioner.typeRequiredWho runs the control plane. selfHosted runs on AWS and Google Cloud.
selfHostedSelf-hosted A cluster AstroPulse creates and runs on machines in your cloud account.eksAmazon EKS A cluster AstroPulse creates on Amazon Elastic Kubernetes Service.gkeGKE A cluster AstroPulse creates on Google Kubernetes Engine.aksAKS A cluster AstroPulse creates on Azure Kubernetes Service.
spec.clusterSpec.dataPlane.nodeGroupsThe machines workloads run on: each group's name, machines or GPU, node count and pricing. Left out on EKS Auto Mode and GKE Autopilot, where the cloud runs the nodes.
If it's refused
-.eks-prod.aws sts get-caller-identity, without spaces or dashes.astroctl cloud aws connect with the same cluster name and region.Clean up
A cluster keeps costing until you delete it. An org Owner opens it under Infrastructure › Kubernetes, selects Delete, waits for the Delete Cluster dialog's dry run to pass, types the cluster name, then selects Delete Permanently. This uninstalls every add-on first. What the delete keeps in your account: Delete a cluster.
Nova shows the delete's dry run and gives you the command to run. It never deletes a cluster itself.
Next
A production cluster usually gets these add-ons next, from its Add-ons tab (Install add-ons):
- Ingress: one load balancer that routes traffic to your applications.
- Certificates: TLS certificates that renew on their own.
- DNS Automation: DNS records for your hostnames.
- Vulnerability Scanning: scans the images running on the cluster for known vulnerabilities.
- Cost Visibility: what each namespace, application and node group costs.
Nova shows the add-on's dry run and installs it when you approve.
Then deploy an application, or compare clouds: EKS, GKE, AKS or self-hosted.