Deploy your first model
Alice, the platform engineer, installs Certificates and Model Serving on the EKS cluster eks-prod (your cluster's name), then deploys the model qwen-chat internal-only.
Before you start
eks-prodwith nodes, on a Kubernetes version the console marks compatible with Model Serving and the selected GPU node configuration.- To cache weights on nodes: a node group for your models, or Node Autoscaling with its GPU pool.
- Private bucket: an IAM role that can read it.
- Gated model: a read-only Hugging Face token.
1. Alice installs Certificates
Path: Infrastructure > Kubernetes > eks-prod > Add-ons > Install Add-on
- Select Certificates.
- Install CRDs: on.
- On Review, select Continue to deploy once the dry run passes, then Deploy cert-manager.
2. Alice installs Model Serving with the cache
Path: Infrastructure > Kubernetes > eks-prod > Add-ons > Install Add-on
- Select Model Serving.
- Where model weights are cached: Node disk.
- Node groups: a CPU node group for a CPU model; a GPU node group, or
astro-gpu-nodepoolwith Node Autoscaling's GPU pool, for a GPU model. A cached model runs on one of these, so leave outsystemandplatform, which run the cluster's own components. - Cloud access: None.
- On Review, select Continue to deploy once the dry run passes, then Deploy model-serving.
The cache lets a new replica start from the node's disk. Left Not set, every replica downloads the weights.
3. Alice lets models read a private bucket
Path: Infrastructure > Kubernetes > eks-prod > Add-ons > Model Serving > Configure
- Cloud access: Workload identity.
- On the Identity step, Cloud: Amazon Web Services.
- AWS role ARN:
arn:aws:iam::123456789012:role/model-reader(the ARN of your own IAM role, with your AWS account ID). - In your cloud IAM, let the role be assumed by the two trust subjects the console names,
system:serviceaccount:*:astro-model-*(every model on this cluster) andsystem:serviceaccount:kserve-localmodel-jobs:default(the weight cache). - On Review, select Continue to apply once the dry run passes, type
model-serving, then select Update model-serving.
Applying it redeploys every running model on the cluster.
4. Alice connects a Hugging Face token
Path: Integrations > Hugging Face
- Select Connect token.
- User access token: paste the
hf_token. - Select Connect.
Revoke withdraws the token from clusters within about ten minutes.
5. Alice installs the scaling add-ons
A model's queue cannot change once it runs, and moving its scaling signal later means extra applies or a redeploy.
Path: Infrastructure > Kubernetes > eks-prod > Add-ons > Install Add-on
cost-visibility, for cost per model.workload-autoscaling(KEDA). Endpoint: use the Prometheus the console suggests. Without it, a model on a GPU stays at a fixed replica count.- Optional:
workload-queueing, with a queue and a GPU quota, so models or teams sharing GPUs get a quota instead of competing for them. See Workload Queueing.
6. Alice deploys qwen-chat, internal only
Anyone with the Editor role can deploy a model too, with no AWS credentials and no cluster-admin access.
Path: Workloads > Models > Deploy model
- Name
qwen-chat(a name for your model deployment), clustereks-prod. - Model step: Hugging Face,
Qwen/Qwen2.5-0.5B-Instruct(the Hugging Face model you want to run), Check model. Weights can also come froms3://,gs://, an Azure Blob address,pvc://oroci://. - Compute step: CPU for this first deploy, or the GPU.
- Optional: Cache weights on the node, Artifact size
2Gi(the size of your model's weights); Workload queue, if you installed one. - Scaling step: Replicas 1 to 2, Scale on left on
Automatic. For a generative model whose queue Workload Autoscaling can read, that means requests waiting, 2 per replica: AstroPulse adds a replica when more wait, up to your maximum. - Access step: leave Internal only (default).
- Review, then Deploy.
qwen-chat turns Running in the Models list, reachable only inside the cluster. Cache weights on the node is disabled, with a reason, when Model Serving has no cache; a weight cache is refused on a registered cluster, because AstroPulse does not know its nodes' disks. A model that fails reports one of ArtifactNotFound, ArtifactAccessDenied, ArtifactDownloadFailed, ImagePullFailed, Unschedulable, RuntimeNotFound or ModelLoadFailed.
Use a Hugging Face commit, an S3 version or a GCS generation. The cache is shared and keyed by it, and a rollback returns the same bytes.
Generative models run on one engine (vLLM), and format and runtime are fixed once a model has served. Each replica runs on one node's GPUs, at most 8; there is no multi-node serving. Engine settings beyond context length and GPUs per replica go in a serving runtime of your own on the cluster, named under Advanced > Runtime engine.
Every new node downloads the model again, and on a private cluster those bytes go through the NAT gateway, which the cloud bills per GB. On an EKS cluster AstroPulse creates, a model at an s3:// address or an oci:// image in your ECR, in the cluster's region, skips that charge: see Cut model download cost.
Clean up
Delete qwen-chat first: on its page select Delete, type the name, then Delete Permanently. The add-ons stay; select Uninstall on the Add-ons tab for any you no longer need. For the full order, see Clean up.