Installing with x-install Tool (Kubernetes)
The x-install
tool is the newest Exostellar installer designed to simplify the setup process. It offers a variety of subcommands to provision a sandbox environment, install Exostellar products, and verify post-installation readiness.
Prerequisites
Before using the x-install
tool, ensure that your environment meets the following requirements:
Terraform: Version 1.8+
kubectl: Version 1.28+
Helm: Version 3.14.2+
AWS Authentication, Credentials, and Region
Please properly configure AWS authentication and default region in your local environment.
Ensure the account has the following IAM permissions:
Valid AWS Marketplace Subscriptions for Exostellar Management Server, Exostellar Controller, Exostellar Worker AMIs for the same AWS account
SSH Key
x-install
tool: Version 0.0.15+
Installation Steps
Creating a Sandbox EKS Cluster and Deploying the Management Server
1. Create a Standalone Stack
Navigate to the directory where x-install
is downloaded and use the following command to create a standalone stack, customizing the cluster name, VPC CIDR, SSH key pair, and region to suit your environment:
x-install create-standalone \
--cluster=xio-standalone \
--vpc-cidr=10.0.0.0/16 \
--ssh-key-pair-name=my-dev-key \
--region=us-east-2
The new VPC and EKS cluster will inherit the stack name.
The VPC will be assigned the CIDR block
10.0.0.0/16
.The EC2 SSH key pair,
my-dev-key
, will be used to access the Exostellar Management Server.
By default, x-install
auto-detects the latest Management Server AMI in the region within the AWS account. To specify a version or custom AMI ID, use --mgmt-server-ami-id
:
x-install create-standalone \
--cluster=xio-standalone \
--vpc-cidr=10.0.0.0/16 \
--ssh-key-pair-name=my-dev-key \
--region=us-east-2 \
--mgmt-server-ami-id=ami-053b51fb9abf27xxx
2. Verify Post-Installation Readiness
After the standalone stack is successfully created, use the following command to check if the stack is ready:
x-install post-install --cluster=xio-standalone --ssh-private-key-file=my-dev-key.pem --ssh-username=rocky
It might take a few attempts for post-install
to pass all system units and containers readiness checks, due to infrastructure readiness latency.
Deploying the Management Server into an Existing EKS Cluster
1. Add Necessary IAM Permissions
Ensure all required IAM resources are present by running:
x-install apply-iam --cluster xio-standalone --region us-east-2
2. Check the Target Environment
Verify the existing EKS cluster meets installation prerequisites:
x-install precheck --cluster xio-standalone --ssh-key-pair-name=my-dev-key.pem
3. Install the Management Server
Deploy the Management Server into the existing EKS Cluster:
x-install apply --cluster xio-standalone
4. Integrate the Management Server with the Existing EKS Cluster
Run the following command to complete the integration:
x-install eksconfig --cluster xio-standalone
To update the integration configurations:
x-install eksconfig --cluster xio-standalone --override-existing-params
Adding X-Compute Nodes to the EKS Cluster via eks-node-cli
1. Access the Management Server
SSH into the Exostellar Management Server using:
ssh -i "my-dev-key.pem" rocky@<management-server-public-ip>
2. Add a New Node
Run this command on the server to add a new node to the EKS cluster:
eks-node-cli add -n node-00 -c 1 -m 4096 -p pool-a -r az1 -k xio-standalone
The new node can be verified using the kubectl
command:
kubectl get node -l eks.amazonaws.com/nodegroup=x-compute
The output should display the new nodes as ready:
NAME STATUS ROLES AGE VERSION
ip-10-0-39-220.us-west-1.x-compute.internal Ready <none> 4m17s v1.29.3-eks-ae9a62a
Please ensure ~/.kube/config
is set up properly. It takes a couple of minutes for the x-compute node to boot and show up.
By default, the EKS token used to access the standalone EKS cluster expired after 60 minutes. Following that, all attempts to access the cluster will fail with Unauthorized
errors.
To generate a new EKS token and use it with your existing kubeconfig
file, run:
x-install update-kubeconfig --cluster=xio-standalone
Adding X-Compute Nodes to the EKS Cluster via Exostellar Karpenter
Reference deployment example:
cat <<EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
selector:
matchLabels:
app: nginx
replicas: 2
template:
metadata:
labels:
app: nginx
spec:
tolerations:
- key: "exokarpenter.sh/x-compute"
operator: "Exists"
effect: "NoSchedule"
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: exokarpenter.sh/nodepool
operator: In
values:
- pool-a
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
resources:
requests:
cpu: 1
EOF
Cleaning Up
The entire standalone stack can be deleted with the destroy
command:
x-install destroy --cluster=xio-standalone
In some cases, Terraform might time out during the destroy process. If this happens, simply re-run the command to allow Terraform to reconcile its final state.
At this time, all controllers and workers EC2 instances need to be manually terminated.
Additional Help and Support
To explore other subcommands, use the following command for a list of available options:
x-install --help
If you encounter any issues, please take a screenshot of your x-install
output and download your ~/.xio/
folder. Then, submit both to Exostellar Customer Support for further assistance.