How Elotl Autoscales CI in Kubernetes with Buildkite & Amazon EKS
The text discusses the use of Buildkite, a CI/CD platform, and its integration with Kubernetes for autoscaling purposes. It highlights the benefits of using Buildkite's agent binary, which automates tasks such as caching and artifact uploading. The challenges of managing self-hosted Buildkite agents are also discussed, including the need for a dedicated team to maintain the infrastructure and ensure low waiting times for CI jobs. The text then presents a case study where Amazon Elastic Kubernetes Service (EKS) was used as the default Kubernetes control plane. It explains how using Kubernetes' built-in Horizontal Pod Autoscaler can help meet business goals of efficient infrastructure spending and good developer experience. However, it also points out that this approach does not save money due to idle EC2 instances running 24/7. To address these issues, Elotl's Nodeless Kubernetes is introduced as a solution that supports EC2 Spot Instances for cost savings and Fargate as a compute launch type. Buildscaler, a Kubernetes controller developed by Elotl, is also discussed as an autoscaling tool specifically designed for Buildkite agent pods. Finally, the text presents some results from using Buildscaler with Cluster Autoscaler in Google Kubernetes Engine, showing how it helps manage thousands of CI machines efficiently. The combination of Buildscaler and Nodeless Kubernetes is presented as a solution that can significantly reduce costs while maintaining low wait times for CI jobs.
Company
Buildkite
Date published
Sept. 9, 2021
Author(s)
Pawel Bojanowski
Word count
1301
Language
English
Hacker News points
None found.