Skip to main content

Create the EKS cluster

Alice, the platform engineer, creates the EKS cluster eks-prod with a small On-Demand system group, a Spot platform group and no GPU. These values are for an AstroPulse-managed EKS cluster; GKE and AKS have their own creation fields.

Before you start​

  • An AWS account ID of 12 digits.
  • GPU quota in the region before you add GPUs (step 6, or Node Autoscaling later). The cluster does not need it, but a new AWS account has none; see If your GPU quota is 0.
  • The GPU's zones, from Accelerators.

Create from the console​

1. Alice names the cluster​

Path: Infrastructure > Kubernetes > New cluster > Name and cloud

  1. Select Bring your own account.
  2. Cluster Name eks-prod (your cluster's name), cloud AWS.
  3. Region: one that offers your GPU. The console offers only regions with at least three availability zones.
Name, cloud and region.Open zoom view

Name, cloud and region.

The Name and cloud step: Bring your own account, Bring your own cluster, Cluster Name eks-prod, Cloud AWS, Region, and the region's Availability ZonesThe Name and cloud step: Bring your own account, Bring your own cluster, Cluster Name eks-prod, Cloud AWS, Region, and the region's Availability Zones

2. Alice connects the AWS account​

Path: Create cluster > Account, then Connect

  1. AWS Account ID: 12 digits, or Already connected.
  2. Complete the Connect stages.
The account ID, or a connected account.Open zoom view

The account ID, or a connected account.

The Account step: Amazon EKS chosen under How Kubernetes runs, the 12-digit Account ID, and the Connected chip for the account already connectedThe Account step: Amazon EKS chosen under How Kubernetes runs, the 12-digit Account ID, and the Connected chip for the account already connected
The connection stages, or Already connected.Open zoom view

The connection stages, or Already connected.

The Connect step with its stages for letting AstroPulse reach the AWS accountThe Connect step with its stages for letting AstroPulse reach the AWS account

3. Alice chooses Kubernetes settings​

Path: Create cluster > Kubernetes

  1. Kubernetes Version: Kubernetes 1.36 or newer (GPU node groups need at least 1.36); list what your cloud offers with astroctl cloud aws k8s-versions.
  2. Compute Mode: Managed node groups.
  3. Keep the default AMI Family.
Version, compute mode, AMI family and tags.Open zoom view

Version, compute mode, AMI family and tags.

The Kubernetes step: Kubernetes Version, Compute Mode with Managed node groups and Auto Mode, AMI Family, and TagsThe Kubernetes step: Kubernetes Version, Compute Mode with Managed node groups and Auto Mode, AMI Family, and Tags
Compute Mode is fixed

You cannot change it after creation. Auto Mode refuses the Node Autoscaling add-on.

4. Alice uses the AstroPulse-managed network​

Path: Create cluster > Network

  • Leave CIDR Block (Optional) empty, Use Existing VPC off.
AstroPulse creates the VPC.Open zoom view

AstroPulse creates the VPC.

The Network step: CIDR Block (Optional) and the Use Existing VPC switchThe Network step: CIDR Block (Optional) and the Use Existing VPC switch
Or use your own VPC.Open zoom view

Or use your own VPC.

The Network step with Use Existing VPC on: VPC ID, VPC CIDR Block, and a Public Subnet and Private Subnet for each zoneThe Network step with Use Existing VPC on: VPC ID, VPC CIDR Block, and a Public Subnet and Private Subnet for each zone

Turn on Use Existing VPC only when your organization requires its own network.

5. Alice adds the system and platform node groups​

Path: Create cluster > Node groups > Add Node Group

  • First group: Name system (a name for your own node group); Pick machine types m6i.large (machine types offered in your region, as are m5.large, m6a.large and m7i.large below); Nodes 1; Pricing On-Demand.
  • Second group: Name platform (a name for your own node group); Pick machine types m6i.large, m5.large, m6a.large and m7i.large; Nodes 2.
  • Pricing for platform: Spot, much cheaper, though the cloud can take a node back at short notice.
  • Leave both groups on All 3 zones, so each can place nodes in the region's first three zones.
  • A managed node group stays at its size. On these 3 fixed nodes the core add-ons run two copies; nodes added by autoscaling do not count.
Both node groups, each at its node count.Open zoom view

Both node groups, each at its node count.

The Node groups step with two groups expanded: system with m6i.large, Nodes 1, On-Demand pricing; and platform with machine types m6i.large, m5.large, m6a.large and m7i.large, Nodes 2, Spot pricing; both on All 3 zonesThe Node groups step with two groups expanded: system with m6i.large, Nodes 1, On-Demand pricing; and platform with machine types m6i.large, m5.large, m6a.large and m7i.large, Nodes 2, Spot pricing; both on All 3 zones
Why two groups

With only Spot groups, the Review step's dry run warns System pods run only on Spot nodes: one Spot reclaim could stop the AstroPulse agent and the add-on controllers together. The On-Demand system group is the fix it asks for: any group with On-Demand pricing, at least 1 node and no taint other than CriticalAddonsOnly or PreferNoSchedule clears it.

The warning an all-Spot cluster gets.Open zoom view

The warning an all-Spot cluster gets.

The Review step's dry run with the warning System pods run only on Spot nodes and its next step, Add an On-Demand node groupThe Review step's dry run with the warning System pods run only on Spot nodes and its next step, Add an On-Demand node group

6. Optional: Alice adds a warm GPU node group​

Path: Create cluster > Node groups > Add Node Group

  • Only for a warm GPU or reserved capacity: Name gpu-serving (a name for your own node group).
  • Request GPU hardware: L4 (the GPU model you need), Devices per node 1.
  • Pick specific zones, Pricing On-Demand, Nodes 1.
An always-on GPU group.Open zoom view

An always-on GPU group.

Node group gpu-serving expanded below the collapsed platform and system groups: Request GPU hardware, GPU model L4, Devices per node 1, Nodes 1, Pricing On-Demand, and one availability zone pickedNode group gpu-serving expanded below the collapsed platform and system groups: Request GPU hardware, GPU model L4, Devices per node 1, Nodes 1, Pricing On-Demand, and one availability zone picked
A warm GPU or the lowest idle cost

A fixed GPU group bills all day but gives predictable latency. Without it, the Node Autoscaling GPU pool launches a GPU node only when a model needs one.

7. Alice creates the cluster​

Path: Create cluster > Notifications > Review > Create

  • Read the review checks, then select Continue to create and Create.
Review, then Create.Open zoom view

Review, then Create.

The Review step: Dry run passed with 14 checks, the Manifest and Create with astroctl sections, and Continue to createThe Review step: Dry run passed with 14 checks, the Manifest and Create with astroctl sections, and Continue to create
NovaNova
Create an EKS cluster eks-prod in us-west-2 with an On-Demand system group of one m6i.large and a Spot platform group of two nodes, with no GPU.

It shows the plan and creates the cluster when you approve.

From the CLI: the same checks run from a spec file and create nothing. This is the spec for this page with an example account. Replace us-west-2 with your region and 123456789012 with your AWS account ID:

YAML
apiVersion: platform.astropulse.io/v1
kind: K8sCluster
spec:
clusterName: eks-prod
provider: aws
region: us-west-2
clusterSpec:
dataPlane:
nodeGroups:
- name: system
minNode: 1
maxNode: 1
machineTypes: [m6i.large]
instanceType: OnDemand
- name: platform
minNode: 2
maxNode: 2
machineTypes: [m6i.large, m5.large, m6a.large, m7i.large]
instanceType: Spot
provisioner:
type: eks
eks:
accountId: "123456789012"
credentials:
type: Dynamic
Terminal
astroctl infra k8s apply -f eks-prod.yaml --dry-run

In our run all 14 checks passed in 9 seconds; four of them:

[PASS] Instance Type Availability: All 4 instance types available in us-west-2
[PASS] Cluster Existence: No EKS cluster named eks-prod in the account's us-west-2 region
[PASS] Zone Offering: Node group platform can be placed: m6i.large, m5.large, m6a.large, m7i.large offered in every zone [us-west-2a, us-west-2b, us-west-2c]
[PASS] Quota Headroom: Node group platform needs 4 vCPU for the starting nodes (minimum 2 × 2 vCPU, m6i.large); quota "All Standard (A, C, D, H, I, M, R, T, Z) Spot Instance Requests" (L-34B43A08) has headroom: a limit of 32 vCPU, with 0 in use by other capacity

✅ Cluster configuration is valid

To create the cluster, run the same command without --dry-run. A plan already at its cluster limit is refused with no checks run, for example You have reached the Clusters limit on your current developer plan (1/1); delete any failed clusters, or upgrade your plan.

Ready when​

eks-prod reports Ready and Connected, with its agent reporting and no GPU node unless Alice added the warm GPU group.

Ready and Connected.Open zoom view

Ready and Connected.

The eks-prod cluster page with Ready and Connected, three nodes and the agent reportingThe eks-prod cluster page with Ready and Connected, three nodes and the agent reporting
The system and platform groups. GPU nodes that Node Autoscaling adds are not a node group, so they do not appear here.Open zoom view

The system and platform groups. GPU nodes that Node Autoscaling adds are not a node group, so they do not appear here.

The Node groups tab listing two groups: system with m6i.large, On-Demand, 1 node; platform with m6i.large, m5.large, m6a.large, m7i.large, Spot, 2 nodesThe Node groups tab listing two groups: system with m6i.large, On-Demand, 1 node; platform with m6i.large, m5.large, m6a.large, m7i.large, Spot, 2 nodes
No unresolved failure.Open zoom view

No unresolved failure.

The Events tab with no unresolved creation failureThe Events tab with no unresolved creation failure

Clean up​

A cluster created only for this example 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, including Node Autoscaling, so its GPU nodes are removed. For the full order, see Clean up.

Next​