Bassem Dghaidi
A deep dive into ARC the Kubernetes operator to scale self-hosted runners
#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
04:03 MIN
Exploring the core components of GitHub Actions
CI/CD with Github Actions
00:51 MIN
Integrating a Kubernetes abstraction layer into your stack
Startup Presentation: Achieving True Developer Self-Service in Kubernetes
03:02 MIN
A DBA's journey to running SQL Server on Kubernetes
Adjusting Pod Eviction Timings in Kubernetes
Featured Partners
Related Videos
Get ready for operations by pull requests
Liviu Costea
Lights, Camera, GitHub Actions!
Ixchel Ruiz
GitOps: The past, present and future
Roberth Strand
Kubernetes Maestro: Dive Deep into Custom Resources to Unleash Next-Level Orchestration Power!
Um e Habiba
5 steps for running a Kubernetes environment at scale
Stijn Polfliet
CI/CD with Github Actions
Chris Ayers
Databases on Kubernetes
Denis Souza Rosa
Cloud Run- the rise of serverless and containerization
Marton Kodok
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.

smartclip Europe GmbH
Hamburg, Germany
Intermediate
Senior
GIT
Linux
Python
Kubernetes




Rocken AG
Linux
DevOps
Docker
Kubernetes
Load Balancing
+1



