EKSphemeral has a control plane implemented in an AWS Lambda/Amazon S3 combo, and as its data plane it is using eksctl running in AWS Fargate. The architecture looks as follows:
eksp installyou provisions EKSphemeral's control plane (Lambda+S3).
- Whenever you want to provision a throwaway EKS cluster, use
eksp create. It will do two things:
- Provision the cluster using
eksctlrunning in Fargate, and when that is completed,
- Create an cluster spec entry in S3, via the
/createendpoint of EKSphemeral's HTTP API.
- Every five minutes, a CloudWatch event triggers the execution of another Lambda function called
DestroyClusterFunc, which notifies the owners of clusters that are about to expire (send an email up to 5 minutes before the cluster is destroyed), and when the time comes, it tears the cluster down.
- Once the EKS cluster is provisioned and the Kubernetes context is configured you can use your cluster.
- You can use
eksp list(via the
/statusendpoint) at any time to list managed clusters.
- If you want to keep your cluster around longer, use
eksp prolong(via the
/prolongendpoint) to extend its lifetime.
- Last but not least, if you want to get rid of EKSphemeral, use the
eksp uninstall, removing all cluster specs in the S3 bucket and deleting all Lambda functions.