Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Register a CircleCI namespace and a resource class for each runner pool, save the one-time class token securely, install Machine Runner 3 on every host, and route jobs with resource_class: namespace/name. For capacity changes, measure unclaimed and running tasks separately for each class, stay below your organization’s concurrency limit, and use single-task runners for disposable hosts or continuous runners with an idle-reclamation controller for persistent hosts.

How the pieces fit together

A multi-host self-hosted fleet has three distinct layers:

  • Namespace: your organization’s scope for self-hosted runners. Most organizations use one namespace.
  • Resource class: the named pool that describes a compatible execution environment, such as Linux, macOS, a particular CPU architecture, specialized hardware, or a trust tier.
  • Runner host: a machine running CircleCI Machine Runner 3 and configured with the token for one resource class.

A job is routed to a pool by specifying the exact class name in its configuration. The value is always namespace/resource-class, not merely the host name. Namespace and class concepts are described in CircleCI’s self-hosted runner concepts and resource class overview.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep pools separate when machines differ in operating system, architecture, installed dependencies, hardware, network access, or trust level. Hosts that can execute the same jobs can share one class; materially different hosts should not be mixed and then discovered through failing jobs.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.

Choose a fleet and lifecycle model first

Decision Manually managed hosts Machine Runner Orchestrator
Provisioning control You create, configure, patch, and retire machines with your existing host or cloud tooling. Kubernetes and KubeVirt create runner virtual machines from a declarative deployment.
Best fit Teams with established VM, bare-metal, or autoscaling-group operations. Teams already operating Kubernetes, KubeVirt, Helm, and virtualized runner workloads.
Lifecycle choices Use single-task for disposable machines or continuous for persistent machines. The orchestrator provisions hosts, but you still choose class settings and capacity behavior.
Scaling responsibility Your fleet controller responds to class-specific demand and creates or destroys hosts. The orchestrator manages runner VMs; Kubernetes cluster compute still has to be sized and scaled separately.
Prerequisites Supported operating system, network access, runner installation, and secure token delivery. Kubernetes, KubeVirt, kubectl, Helm 3 or later, class tokens, and /dev/kvm on every node that runs runner VMs.

CircleCI documents the orchestrator prerequisites and configuration in its Machine Runner Orchestrator guide. It is an infrastructure option, not an automatic expansion of your underlying Kubernetes cluster. Likewise, container-runner pods may be created as work arrives, while the Kubernetes nodes that host them remain your responsibility.

Register the namespace and resource class

An organization administrator must create the self-hosted runner namespace and class. If your organization already uses CircleCI Orbs, the runner namespace is shared with that setup rather than being a second, isolated namespace.

  1. Identify the organization ID and decide on a stable namespace name. Treat it as part of your job configuration API; changing it later requires updating every job that references it.
  2. If the organization does not already have a namespace, create one with the CircleCI CLI:
circleci namespace create <name> --org-id <organization-id>
  1. Create a resource class and ask the CLI to generate its token:
circleci runner resource-class create <namespace>/<resource-class> <description> --generate-token
  1. Copy the token into an approved secret manager immediately. CircleCI displays a resource-class token only during class creation; do not put it in a repository, image layer, ticket, shell history, or public configuration.
  2. Record the class’s intended capabilities and trust boundary. Examples include acme/linux-x86, acme/macos, or a class reserved for jobs that require a hardware device. Use names that remain accurate as hosts are replaced.

The command flow and one-time token behavior are covered in Machine Runner 3 manual installation. CLI syntax, package versions, and supported platforms can change, so check that page immediately before executing the commands.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Install and configure Machine Runner 3 on every host

Install the current Machine Runner 3 package using CircleCI’s platform-specific instructions, then configure each host with the token for the class it should serve. The installation page uses current as the selector for the current binary; you can pin a specific version by changing that selection when reproducibility requires it.

Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
  1. Prepare the host. Use a dedicated operating-system account with only the permissions required by the jobs. Install required build tools and make sure the host can reach the CircleCI runner service and any registries or services that builds need.
  2. Install the runner. Follow the operating-system command sequence in the manual installation guide. Do not copy an old package URL or assume that a previous binary remains supported.
  3. Set a unique runner name. Every host should have a distinct, meaningful name, such as a hostname plus an availability-zone or role suffix. This makes inventory and incident response possible when several machines share one class.
  4. Choose a working directory. Give the runner a dedicated path with enough space for checkouts, caches, Docker layers, and build artifacts. Apply the cleanup policy appropriate for your workload so credentials and source files do not remain indefinitely.
  5. Provide the class token through the runner API configuration. Inject it from your secret store at service start instead of hard-coding it in an image or configuration repository.
  6. Select the lifecycle mode. Configure single-task when the host will be destroyed or re-imaged after one task. Configure continuous when the host should poll for more work after completing a task and a separate controller will remove idle capacity.
  7. Start the service and verify registration. Confirm that the process remains running, reports the expected runner name and class, and appears in the runner inventory before sending production jobs to it.

For CircleCI Server, set the runner API URL to the hostname of the Server installation rather than assuming the Cloud endpoint. On CircleCI Cloud, the runner API is hosted at runner.circleci.com. Installation details and Server-specific settings are maintained in the manual installation documentation.

Route jobs to the correct host pool

Reference the exact namespace and class in the job. This illustrative configuration sends a machine job to the my-org/linux pool:

jobs:
  build:
    machine: true
    resource_class: my-org/linux
    steps:
      - run: echo "Hello runner"

Replace both parts with the values created for your organization. A typo in either component prevents the job from reaching the intended pool; it does not fall back to another class. Keep class names in one configuration variable or reusable command where many projects must target the same pool, but preserve the fully qualified value that CircleCI expects.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When to create another class

  • Create separate classes for Linux and macOS rather than allowing incompatible jobs to compete for one pool.
  • Separate ARM and x86 hosts when binaries, caches, or toolchains are architecture-specific.
  • Use a distinct class for GPU, licensed, device-attached, or otherwise scarce hardware.
  • Isolate jobs with different network reachability or trust requirements; a class boundary is an operational and authorization control, not just a performance label.

Scale capacity from demand, class by class

Do not treat all runners as one interchangeable fleet. CircleCI’s scaling guidance uses unclaimed tasks, running tasks, and resource-class information. The task data is scoped to one resource class, so a controller must evaluate each class independently.

Rank #3
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
  1. Enumerate classes. Maintain the classes your organization permits and map each class to its provisioning method, maximum size, and lifecycle mode.
  2. Query unclaimed tasks for one class. These are jobs that require that exact class but do not yet have a runner available to claim them.
  3. Query running tasks for the same class. Running work tells you how much capacity is already occupied and prevents a controller from adding hosts based only on a transient queue snapshot.
  4. Check the organization concurrency ceiling. Your plan’s organization-level concurrency limit caps the number of jobs that can execute. Adding machines beyond that ceiling can produce hosts that start successfully but cannot run additional work.
  5. Calculate a target for that class. Add enough capacity for pending work and an intentionally chosen warm buffer, subject to the class’s maximum and the organization limit. The exact thresholds, polling interval, warm count, and cloud-provider implementation are design choices, not universal CircleCI values.
  6. Provision or retire hosts. For single-task, launch a clean host for a task and allow it to exit so the infrastructure controller can recycle it. For continuous, add hosts when demand rises and remove idle hosts when demand falls.
  7. Recheck after each change. Provisioning and runner registration are asynchronous. Poll again before launching another batch, and use running-task data to avoid a feedback loop that over-provisions while hosts are still starting.

The relevant runner API operations, including installed-runner inventory and unclaimed or running task queries, are documented in CircleCI’s self-hosted runner API reference. Confirm authentication, endpoint details, and the Server API address for your deployment before coding a controller.

A practical controller loop

  • Poll each class on a fixed cadence with jitter so multiple controllers do not synchronize.
  • Record the last observation, desired count, actual registered count, and provisioning operations for auditability.
  • Use a scale-up threshold that requires pending work, then impose a cooldown while new hosts register.
  • Use a longer scale-down delay than the scale-up delay to avoid destroying a host between short bursts.
  • Stop launching capacity when the organization concurrency limit is reached, even if unclaimed tasks remain.
  • Alert when hosts are registered but never claim work, when tasks remain unclaimed beyond your service target, or when runner versions drift.

Pick the right runner lifecycle

single-task for ephemeral capacity

A single-task runner exits after one task. This is useful when an image or VM is created for a job, then discarded. The exit signal gives your infrastructure controller a clean point to delete the machine and removes the need to scrub an unknown number of workspaces from a long-lived host. Startup time and image-pull time become part of job latency, so keep the image reproducible and provision only as much warm capacity as your workload justifies.

continuous for persistent capacity

A continuous runner polls for another task after completing one. It can reduce startup overhead for steady workloads, but it remains a live machine with workspaces, credentials, caches, and network access. Your controller must track idle hosts and shut down unused capacity. CircleCI also documents runner idle timeout as a way to recycle resources when demand drops; configure it with your cleanup and termination behavior rather than assuming it replaces fleet management.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Requirement Single-task Continuous
Host lifetime One task, then runner exits. Multiple tasks until explicitly retired or timed out.
Isolation Fresh host per task is straightforward. Requires workspace cleanup, patching, and careful trust controls.
Scale-down trigger Infrastructure can recycle the host after runner exit. Controller must identify and remove idle hosts.
Startup overhead Paid for each new host unless you keep warm capacity. Amortized across tasks while the host remains available.

Use the Machine Runner Orchestrator when Kubernetes is your control plane

The documented orchestrator creates runner VMs with Kubernetes and KubeVirt. Before deploying it, verify all of the following:

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
  • A functioning Kubernetes cluster with KubeVirt installed.
  • kubectl access and Helm 3 or later.
  • A resource-class token for every class the deployment will provision.
  • /dev/kvm exposed on every node that hosts runner VMs. Cloud nodes may require nested virtualization enabled before those nodes are created.
  • The correct CircleCI API address: Cloud uses the documented Cloud service; Server requires the appropriate Server address.

The orchestrator’s values configure resource classes as a map keyed by namespace/name. Several classes can share defaults while overriding settings for a particular operating system, image, size, or capacity policy. Validate the chart version and current compatibility matrix in the orchestrator documentation at implementation time.

Remember the boundary between runner and cluster scaling: creating more runner VMs does not create more Kubernetes nodes. If the cluster cannot schedule additional VMs, CircleCI jobs will remain unclaimed even though the desired runner count has increased.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Security controls for a multi-host runner fleet

Machine-runner jobs execute with the privileges of the operating-system account running the runner. Access to a Docker daemon is effectively root access on that machine. A runner process is therefore not a security boundary for arbitrary or untrusted workloads.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Store class tokens in a secret manager and limit who can read or rotate them.
  • Restrict which projects may target classes that have production network access, proprietary tools, signing keys, or attached devices.
  • Use separate classes and accounts for less-trusted code; do not mix untrusted pull-request jobs with sensitive continuous hosts.
  • Prefer disposable single-task hosts for workloads that cannot be strongly trusted or scrubbed.
  • Remove credentials, source trees, temporary files, and Docker artifacts during host retirement or between continuous tasks.
  • Patch the operating system, runner binary, build tools, and images on a defined schedule, and monitor runner versions in inventory.
  • Limit outbound network access to what builds require and log administrative access to runner hosts.

CircleCI’s security cautions and runner model are covered in the runner concepts documentation and the installation guide.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.

Inventory, observability, and troubleshooting

Use the runner API to reconcile what you intended to provision with what CircleCI can see. The list response can include hostname, runner name, resource class, connection timestamps, last-use timestamp, and runner version. Those fields help distinguish a host that never connected from one that connected but stopped claiming tasks.

Jobs remain unclaimed

  • Confirm the job’s resource_class exactly matches the registered namespace and class.
  • Check that the class has registered runners and that they are connected.
  • Query unclaimed tasks for that class rather than a different pool.
  • Inspect organization concurrency; the queue may exceed the number of jobs the plan permits to run.
  • Verify that hosts can reach the correct Cloud or Server runner API endpoint.

A host registers but does not receive work

  • Compare its configured class token and runner name with the intended class.
  • Check the host’s last-use and connection timestamps in inventory.
  • Confirm that project authorization permits the job to target the class.
  • Look for a class mismatch caused by a copied configuration file or an outdated image.

Capacity grows without reducing the queue

  • Ensure the controller queries each class separately; demand in one class cannot be satisfied by another.
  • Check whether hosts are still booting, waiting for KubeVirt scheduling, or blocked by missing /dev/kvm.
  • Compare desired, registered, running, and unclaimed counts to find where the pipeline is stalled.
  • Apply a provisioning cooldown so slow registration does not trigger repeated scale-up batches.

Continuous hosts become stale or unsafe

  • Verify idle-timeout and controller scale-down behavior.
  • Inspect cleanup logs for workspaces, credentials, Docker layers, and generated files.
  • Retire hosts that drift from the approved runner version or image rather than trying to repair indefinite drift in place.

Operational checklist

  • Namespace exists and is associated with the correct organization.
  • Every class has a documented purpose, owner, maximum capacity, and trust level.
  • Tokens are stored outside source control and delivered only at runner startup.
  • Each host has a unique name, dedicated working directory, cleanup policy, and supported runner version.
  • Jobs use the exact fully qualified class name.
  • Scaling logic reads unclaimed and running tasks per class and enforces the organization concurrency ceiling.
  • Ephemeral and persistent lifecycle behavior is explicit, tested, and observable.
  • Cloud and Server API addresses are not conflated.
  • Orchestrator nodes expose /dev/kvm, and Kubernetes capacity is monitored separately from runner count.
  • Inventory, queue age, registration failures, idle hosts, runner versions, and provisioning errors generate alerts.

Which approach should you use?

Use manually managed hosts when your team already has reliable VM or bare-metal provisioning and wants direct control over images, networks, and retirement. Choose single-task hosts when isolation and clean teardown matter more than startup latency. Choose continuous hosts for predictable, sustained workloads only when you can enforce cleanup, patching, authorization, and idle scale-down.

Use Machine Runner Orchestrator when Kubernetes and KubeVirt are already an operational strength and you want resource classes represented in one deployment. It adds those platform prerequisites and does not remove the need to scale the Kubernetes nodes underneath the runner VMs. In every model, the durable design is the same: explicit resource-class boundaries, secret-safe registration, class-specific demand signals, and a controller that respects the organization concurrency limit.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.