Skip to content
Search

Spegel

lastmod 2025-07-02created 2024-06-153 edits

(For the terminal browser that uses LLMs to restructure web pages, see Spegel (Terminal Browser).)

Stateless cluster local OCI registry mirror.

Use cases

Spegel is a good fit if you want to do any of the following.

  • Cache images from external registries locally without explicit configuration.
  • Prevent cluster failures during external registry downtime.
  • Improve image pull speed and Pod startup time by pulling images from the local cache first.
  • Avoid rate limits when pulling images from external registries (e.g. Docker Hub).
  • Reduce traffic leaving the cluster network.
  • Increase image pull efficiency in edge node deployments.

Background

Kubernetes does a great job of distributing workloads across multiple nodes. It allows nodes to fail without affecting uptime. A key component for this to work is that each node must be able to pull the workload image before it starts. Each replica running on a node incurs a pull operation. Images can be pulled from geographically close registries within a cloud provider, public registries, or self-hosted registries. This process has the drawback that each node has to make a separate round trip. Why can't nodes share images with each other?

Spegel lets each node in a Kubernetes cluster act as a local registry mirror, allowing nodes to share images with each other. Images already pulled by a node can be pulled by other nodes in the cluster.

This has the benefit of reducing workload startup time and egress traffic, since images are stored locally within the cluster. It also allows new workloads to be scheduled even when an external registry is down.

See also

Favorite site

author Zer0 sitemap