Spegel

Zweck

Spegel verbessert die Verfügbarkeit und Effizienz von Container-Images innerhalb eines Kubernetes Clusters.

Bereits heruntergeladene Images können zwischen Nodes verteilt werden, wodurch wiederholte Downloads aus externen Registries reduziert werden.

Ziele

  • Reduzierung externer Registry-Zugriffe

  • Schnellere Pod-Starts

  • Geringerer Internet-Traffic

  • Höhere Verfügbarkeit bei Registry-Ausfällen

  • Bessere Nutzung lokaler Cluster-Ressourcen

Architektur

Node A
  |
  +-- Container Image
  |
  v
Spegel
  |
  +------ Node B
  |
  +------ Node C

Spegel nutzt Peer-to-Peer-Kommunikation zwischen den Cluster-Nodes.

Containerd kann Images von anderen Cluster-Nodes beziehen, ohne diese erneut aus einer externen Registry herunterladen zu müssen.

Deployment Modell

Spegel wird ausschließlich im Cluster home-tamay-cloud betrieben.

Der Cluster besteht aus drei Nodes und profitiert dadurch von der verteilten Bereitstellung von Container-Images.

Single-Node Cluster profitieren nicht von Spegel und verwenden die ursprünglichen Container Registries.

Integration

Spegel integriert sich direkt in Containerd.

Containerd
      |
      v
    Spegel
      |
      +--> Peer Nodes
      |
      +--> Container Registry

Containerd versucht zunächst, Images innerhalb des Clusters zu finden.

Erst wenn kein Peer das gewünschte Image bereitstellt, wird die ursprüngliche Registry kontaktiert.

Observability

Für Spegel werden Monitoring-Komponenten bereitgestellt.

Aktiviert sind:

  • ServiceMonitor

  • Grafana Dashboard

Dadurch wird die Nutzung von Spegel innerhalb des Clusters sichtbar.

Vorteile

  • Weniger externe Downloads

  • Schnellere Rollouts

  • Geringere Abhängigkeit von Registries

  • Bessere Bandbreitennutzung

  • Besonders sinnvoll für Multi-Node Cluster

Einschränkungen

  • Kein Nutzen für Single-Node Cluster

  • Nur für Container Images

  • Ersetzt keine Container Registry

  • Images müssen bereits auf mindestens einem Node vorhanden sein

Betrieb

Pods anzeigen

kubectl get pods -n spegel

Status prüfen

kubectl get pods -n spegel
kubectl get servicemonitors -A | grep spegel

Logs anzeigen

kubectl logs -n spegel daemonset/spegel

Cluster Nutzung

Cluster

Verwendung

home-tamay-cloud

Aktiv

tamay-cloud

Nicht installiert

test-tamay-cloud

Nicht installiert