Skip this guide if your EKS cluster has enough CPU and memory and can create LoadBalancer services. Go to PrivateLink or Hybrid deployment.
Prerequisites
AWS CLI v2 with credentials,kubectl, Helm v3, and permission to create EKS clusters, VPCs and IAM roles.
1. Create a VPC
2. Create Internet Gateway and NAT Gateway
Air-Gapped installs skip this step and reach AWS through VPC endpoints:
Keyless Bedrock on any private-subnet cluster (Hybrid included) also needs
sts, eks-auth (Pod Identity) and bedrock-runtime endpoints.3. Route tables
4. IAM roles
EKS Cluster Role
EKS Cluster Role
Node Role
Node Role
5. Create the EKS cluster
6. Create a node group
Minimum requirements:
Per-service numbers and a calculator: Sizing & Resource Requirements.
7. Configure kubectl
EKS Add-Ons
EBS CSI IAM Setup (Pod Identity)
Create Default StorageClass
Encrypt every volume. xpander’s PVCs hold customer data. The StorageClass above sets
encrypted: "true" with the default aws/ebs KMS key. For a customer-managed key, add kmsKeyId: "<key-arn>" to parameters and grant the EBS CSI role kms:CreateGrant, kms:Decrypt and kms:GenerateDataKey*. Treat encryption as required for compliance-sensitive deployments.EKS Auto Mode
AWS runs storage, load balancing and nodes for you. Three things change:-
Storage provisioner. Skip the
aws-ebs-csi-driveradd-on and its role. A StorageClass onebs.csi.aws.comnever binds on Auto Mode. Useebs.csi.eks.amazonaws.comin the default StorageClass and the chart’s fleet class: -
IngressClass. Auto Mode ships no IngressClass and ignores the
alb.ingress.kubernetes.io/group.nameannotation, so it creates one ALB per Ingress. Create anIngressClassParamswith the scheme and group, and anIngressClassthat references it, and set the chart’sclassNameto it. Repeat withscheme: internalfor private hosts such as deployment-manager or an internal IdP. -
IAM for pods. Bind Bedrock and S3 permissions to the
defaultandagent-controllerservice accounts withaws eks create-pod-identity-association, as in the EBS CSI example. Keep theeks-pod-identity-agentadd-on.
Before you install on Auto Mode
-
Cluster access for the installer’s identity. With
authenticationMode=API, IAM roles get nothing by default. Give the role that runskubectland Helm an access entry withAmazonEKSClusterAdminPolicy: -
Node consolidation during the install. The built-in
general-purposeNodePool consolidates after thirty seconds and reverts patches, so an install can lose nodes mid-schedule. Add a higher-weight NodePool: -
Fresh nodes refuse
kubectl execfor a moment. Until the kubelet certificate is signed,kubectl execandkubectl run -ifail withtls: internal error. Retry after a few seconds, also in pipelines.
Next steps
Keep traffic inside AWS with PrivateLink
When traffic must stay in AWS.
Install xpander Hybrid
The installer wizard.

