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:
...
Expand | |||||
---|---|---|---|---|---|
| |||||
When working with standalone flow i.e., deploying everything from scratch using the Please add your AWS account ID and cluster name to the policy below.
| |||||
Expand | |||||
title | IAM Permissions
|
Expand | |||||
---|---|---|---|---|---|
| |||||
When working with existing EKS clusters, use the following IAM policy. Please add your AWS account ID and cluster name to the policy below.
|
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.1517+
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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:
...
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
:
Code Block | ||
---|---|---|
| ||
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:
...
Info |
---|
It might take a few attempts for |
Deploying the Management Server into an Existing EKS Cluster
1. Add Necessary IAM Permissions
Ensure all required IAM resources are present by running:
Code Block | ||
---|---|---|
| ||
x-install apply-iam --cluster xio-standalone --region us-east-2 |
2. Check the Target Environment
Verify the existing EKS cluster meets installation prerequisites:
...
Info |
---|
Please refer to this for the IAM roles required for the cluster’s node group. |
3. Install the Management Server
Deploy the Management Server into the existing EKS Cluster:
Code Block | ||
---|---|---|
| ||
x-install apply --cluster xio-standalone |
4. Integrate the Management Server with the Existing EKS Cluster
Run the following command to complete the integration:
...
To update the integration configurations:
Code Block | ||
---|---|---|
| ||
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:
Code Block | ||
---|---|---|
| ||
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:
...
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:
Code Block | ||
---|---|---|
| ||
x-install update-kubeconfig --cluster=xio-standalone |
Adding X-Compute Nodes to the EKS Cluster via Exostellar Karpenter
Reference deployment example:
Code Block | ||
---|---|---|
| ||
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:
...
Info |
---|
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:
...