A deep dive into ARC the Kubernetes operator to scale self-hosted runners
Stop manually managing runners. Get an on-demand, scalable GitHub Actions experience inside your own Kubernetes cluster with ARC.
#1about 2 minutes
Introducing the Actions Runner Controller for GitHub Actions
Actions Runner Controller (ARC) is an open-source project, now maintained by GitHub, for managing and scaling self-hosted runners on demand.
#2about 2 minutes
A live demonstration of auto-scaling self-hosted runners
See how a queued GitHub Actions workflow automatically triggers the creation of new runner pods in a Kubernetes cluster.
#3about 3 minutes
Understanding the core concept of Kubernetes control loops
Kubernetes operators use control loops, also known as reconciliation loops, to continuously check and enforce a desired state for resources.
#4about 1 minute
The high-level architecture of ARC and GitHub Actions
The controller runs in your Kubernetes cluster and communicates with GitHub to manage runner scale sets based on workflow demands.
#5about 1 minute
Why you should run ARC in a dedicated Kubernetes cluster
Isolate ARC from production workloads to prevent noisy neighbor problems and security risks from running arbitrary code.
#6about 4 minutes
How ARC controllers and custom resources work together
ARC installs a controller manager with multiple control loops, each responsible for reconciling a specific custom resource like runner scale sets.
#7about 5 minutes
The role of runner scale sets and the listener pod
Runner scale sets are pools of homogeneous runners, and a dedicated listener pod makes scaling decisions based on messages from GitHub.
#8about 6 minutes
A step-by-step workflow for scaling up a new runner
A workflow trigger sends a message to the listener, which patches a resource to increase the runner count, prompting a controller to create a new runner pod.
#9about 5 minutes
Exploring the open-source ARC repository on GitHub
A tour of the Actions Runner Controller codebase highlights its structure and the distinction between legacy community modes and the new GitHub-supported mode.
#10about 5 minutes
Defining custom resources for the ARC controller
The controller uses custom resource definitions (CRDs) to extend the Kubernetes API, creating new resource types like AutoscalingRunnerSet.
#11about 5 minutes
A look inside the controller's reconciliation function
The core logic of the operator resides in the reconciliation function, which compares the current state to the desired state and applies necessary changes.
#12about 3 minutes
How the listener application uses a long-poll connection
The listener runs as a separate application that establishes a long-poll HTTPS connection to the GitHub Actions backend to receive job messages.
#13about 7 minutes
Packaging and publishing ARC with Helm and OCI images
ARC is distributed as OCI-compliant Helm charts and a container image containing the controller manager and listener applications.
#14about 3 minutes
Common challenges when scaling self-hosted runners
Key challenges include scaling quickly to meet demand, scaling down to zero, and managing resource limitations within the Kubernetes cluster.
#15about 4 minutes
Career advice for aspiring self-taught developers
Beyond learning a tech stack, focus on software engineering fundamentals like data structures, algorithms, and writing maintainable code.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
04:16 MIN
Enabling developer autonomy with GitOps and CRDs
Software Engineering Social Connection: Yubo’s lean approach to scaling an 80M-user infrastructure
15:02 MIN
Answering audience questions on GitHub Actions
Lights, Camera, GitHub Actions!
03:33 MIN
Introduction to GitOps and the talk agenda
Get ready for operations by pull requests
03:08 MIN
Understanding the core components of GitHub Actions
Lights, Camera, GitHub Actions!
04:24 MIN
Why Argo Workflows is a powerful Kubernetes-native engine
MLOps on Kubernetes: Exploring Argo Workflows
03:58 MIN
Audience Q&A on DevOps, tools, and process
GitOps for the people
04:03 MIN
Exploring the core components of GitHub Actions
CI/CD with Github Actions
03:02 MIN
A DBA's journey to running SQL Server on Kubernetes
GitHub Copilot: Beyond the Basics – 10 Ways to Elevate Your CodingWelcome to an in-depth exploration of GitHub Copilot and its capabilities. If you're a software developer or someone intrigued by AI's potential to revolutionize coding, this post is for you. GitHub Copilot, an AI-powered code completion tool, offers...
All the videos of Halfstack London 2024!Last month was Halfstack London, a conference about the web, JavaScript and half a dozen other things. We were there to deliver a talk, but also to record all the sessions and we're happy to share them with you. It took a bit as we had to wait for th...
From learning to earning
Jobs that call for the skills explored in this talk.