civil-and-structural-engineering
Aufbau eines Multitenant Docker Registry mit Harbor
Table of Contents
In der heutigen containerisierten Welt ist die sichere und effiziente Verwaltung mehrerer Docker-Images für Unternehmen jeder Größe von entscheidender Bedeutung. Während Unternehmen ihre Container-Bereitstellungen skalieren, wird der Bedarf an einer robusten, sicheren und funktionsreichen Container-Registrierung von größter Bedeutung. Harbor, ein CNCF-Projekt mit über 30.000 GitHub-Sternen, ist die am weitesten verbreitete Open-Source-Cloud-native Container-Registrierung. Dieser umfassende Leitfaden führt Sie durch den Aufbau einer Multi-Tenant-Docker-Registrierung mit Harbor, die alles von der Installation bis hin zu fortschrittlichen Sicherheitskonfigurationen abdeckt.
Was ist Harbour und warum wählen Sie es?
Harbor ist eine Open-Source-Registrierung, die Artefakte mit Richtlinien und rollenbasierter Zugriffskontrolle sichert, sicherstellt, dass Bilder gescannt und frei von Schwachstellen sind, und Bilder als vertrauenswürdig signiert. Harbor erweitert die Open-Source-Docker-Distribution um die Funktionen, die normalerweise von Benutzern benötigt werden, wie Sicherheit, Identität und Management.
VMware Open Source Harbor wurde 2016 Mitglied des CNCF im Juli 2018 und schloss sein Studium im Juni 2020 ab und ist damit das erste Open-Source-Register, das den Status eines CNCF-Graduierten erreicht hat. Dieser Meilenstein spiegelt sowohl seine Reife als auch die Stärke seiner Community-Unterstützung wider.
Hauptmerkmale, die Harbor Apart setzen
Harbor unterscheidet sich von grundlegenden Docker-Registern und sogar kommerziellen Alternativen durch mehrere unternehmensweite Fähigkeiten:
- Mehrmandant durch Projekte: Harbor organisiert Inhalte in Projekten, wobei jedes Projekt seine eigenen RBAC-Richtlinien, Scan-Einstellungen, Kontingentgrenzen und Tag-Retention-Regeln erhält.
- Inklusive Sicherheitslücken Scannen: Harbor beinhaltet Scan-on-Push-Richtlinien mit steckbaren Backends, einschließlich Trivy, Clair und Anchore, die anfällige Bilder vor dem Einsatz blockieren.
- Bildsignierung und Content Trust: Harbor unterstützt Artefaktsignierung mit Cosign und Notation für die Sicherheit der Lieferkette sowie Richtlinien für das Content-Vertrauen, die nur signierte Bilder erzwingen, können gezogen werden
- Multi-Registry Replication: Harbor synchronisiert Bilder über Rechenzentren, Cloud-Regionen oder Hybridumgebungen mit richtlinienbasierten Filtern auf Repositories, Tags und Labels.
- Umfassende Zugriffskontrolle: Authentifizierungs-Plugins in LDAP, Active Directory, OIDC-Anbieter oder die integrierte Datenbank
- Roboterkonten für die Automatisierung: Roboterkonten bieten CI/CD-Pipelines nicht-menschlichen Zugriff mit erweiterten Berechtigungen und Ablaufdaten
- Real Audit Trail: Audit Logs verfolgen, wer Artefakte geschoben, gezogen, gelöscht oder gescannt hat
Wann man Harbor über Alternativen wählt
Unternehmen betreiben Harbor, wenn sie ein privates Containerregister mit Sicherheitskontrollen benötigen, für die gehostete Register Gebühren erheben oder die sie einfach nicht anbieten, wobei Luftumgebungen, regulierte Branchen und Multi-Cloud-Setups typische Anwendungsfälle sind.
Im Vergleich zu Docker Hub bietet Harbor integrierte Schwachstellenscans, Bildsignaturen, RBAC, Auditprotokollierung und Multi-Registrierungsreplikation - Funktionen, die Docker Hub-Pläne erfordern oder nicht verfügbar sind. Für Unternehmen mit Datenaufenthaltsanforderungen, Compliance-Mandaten oder der Notwendigkeit unbegrenzter privater Repositories bietet Harbor eine überzeugende, selbst gehostete Alternative.
Mehrschichtige Architektur von Harbor
Bevor wir in die Installation eintauchen, ist es wichtig zu verstehen, wie Harbor Multi-Tenancy implementiert und wie diese Architektur organisatorische Isolation und Sicherheit unterstützt.
Projekte als Mietergrenzen
Artefakte innerhalb von Harbor sind Eigentum eines Projekts, und diese Gruppierung ermöglicht es, Einstellungen und Berechtigungen für Artefakte zu stimmen, im Gegensatz zu einer rein globalen Ebene. Projekte dienen als grundlegende Einheit für Mehrmandanten in Harbor und fungieren als isolierte Namensräume, die Containerbilder, Helm-Diagramme und andere OCI-Artefakte nach Team, Abteilung oder Kunde trennen.
Die Multi-Tenancy-Funktionalitäten von Harbor umfassen Projekte, die als Namespaces fungieren, die Modelle nach Team, Umgebung oder Anwendungsfall isolieren, zusammen mit feinkörnigem RBAC zur Steuerung, wer Artefakte schieben, ziehen oder verwalten kann. Diese projektbasierte Isolation stellt sicher, dass verschiedene Mandanten ohne ausdrückliche Genehmigungszuschüsse nicht auf die Artefakte des anderen zugreifen können.
Rollenbasierte Zugangskontrolle (RBAC)
Benutzer greifen über "Projekte" auf verschiedene Repositories zu und ein Benutzer kann unterschiedliche Berechtigungen für Bilder oder Helm-Diagramme unter einem Projekt haben. Harbor implementiert ein ausgeklügeltes RBAC-System mit vordefinierten Rollen, die auf Projektebene zugewiesen werden können:
- Gast: Nur Lesezugriff auf die Ansicht und das Ziehen von Artefakten
- Entwickler: Lese-Schreibberechtigungen zum Schieben und Ziehen von Bildern
- Maintainer: Kann Projektmitglieder verwalten und Projekteinstellungen konfigurieren
- Projektadministrator: Volle Kontrolle über das Projekt einschließlich Lese-Schreib-Konfigurationsfähigkeiten
Dieses granulare Berechtigungsmodell ermöglicht es Unternehmen, das Prinzip der geringsten Privilegien zu implementieren, sodass Benutzer und automatisierte Systeme nur Zugriff auf die Ressourcen haben, die sie benötigen.
Authentifizierungsintegration
Im einfachsten Fall können Benutzer von Harbor selbst erstellt und intern verwaltet werden, was jedoch nicht besonders gut skaliert wird, so dass Harbor auch die Integration in andere beliebte Dienste wie OIDC, Active Directory und LDAP ermöglicht. Diese Flexibilität ermöglicht es Unternehmen, bestehende Identitätsmanagement-Infrastruktur zu nutzen, den Verwaltungsaufwand zu reduzieren und konsistente Zugriffsrichtlinien für alle Systeme zu gewährleisten.
Voraussetzungen und Systemanforderungen
Stellen Sie vor der Installation von Harbor sicher, dass Ihre Umgebung die notwendigen Anforderungen für eine produktionsbereite Bereitstellung erfüllt.
Hardwareanforderungen
Für eine Produktions-Harbor-Bereitstellung, die mehrere Mandanten unterstützt, sollten Sie die folgenden Mindestspezifikationen beachten:
- CPU: 4 Kerne mindestens (8+ Kerne für stark frequentierte Umgebungen empfohlen)
- Speicher: 8 GB RAM Minimum (16+ GB empfohlen)
- Speicherung: Hängt vom Bildvolumen ab; beginnen Sie mit 100 GB und planen Sie Wachstum
- Netzwerk: Stabile Netzwerkverbindung mit ausreichender Bandbreite für Image-Push/Pull-Operationen
Softwarevoraussetzungen
Harbor benötigt die folgenden Softwarekomponenten:
- Betriebssystem: Linux-Distribution (Ubuntu 20.04+, CentOS 7+, RHEL 7+ oder ähnliches)
- Docker Engine: Version 20.10.0 oder höher
- Docker Compose: Version 1.29.0 oder höher (für die Docker Compose Installationsmethode)
- Kubernetes: Version 1.20+ (wenn über Helm bereitgestellt)
- OpenSSL: Zum Generieren von SSL/TLS-Zertifikaten
Netzwerk- und Domänenkonfiguration
Für eine Produktionsbereitstellung benötigen Sie:
- Ein vollqualifizierter Domainname (FQDN), der auf Ihren Harbor-Server verweist
- SSL/TLS-Zertifikate (selbstsigniert zum Testen, CA-signiert für die Produktion)
- Offene Firewall-Ports: 80 (HTTP), 443 (HTTPS) und optional 4443 (Notar)
Installieren von Harbor: Schritt-für-Schritt-Anleitung
Harbor kann auf jeder Kubernetes-Umgebung oder auf einem System mit Docker-Unterstützung installiert werden.Diese Anleitung behandelt beide Installationsmethoden, beginnend mit dem Docker Compose-Ansatz der Einfachheit halber, gefolgt von der Kubernetes-Bereitstellung mit Helm-Diagrammen.
Methode 1: Installieren von Harbor mit Docker Compose
Docker Compose bietet den schnellsten Weg, um Harbor in Betrieb zu nehmen, und ist damit ideal für Entwicklungsumgebungen und kleinere Bereitstellungen.
Schritt 1: Installieren Sie Docker und Docker Compose
Stellen Sie zunächst sicher, dass Docker und Docker Compose auf Ihrem System installiert sind.
# Update package index
sudo apt update
# Install prerequisites
sudo apt install -y ca-certificates curl gnupg lsb-release
# Add Docker's official GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Set up Docker repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker Engine and Docker Compose
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Start and enable Docker
sudo systemctl start docker
sudo systemctl enable docker
# Verify installation
docker --version
docker compose version
Schritt 2: Download Hafen
Laden Sie Binärdateien von Harbor Release herunter und folgen Sie der Installation & Konfigurationshandbuch, um Harbor zu installieren.
# Download the latest Harbor release
cd /opt
curl -s https://api.github.com/repos/goharbor/harbor/releases/latest | grep browser_download_url | cut -d '"' -f 4 | grep '.tgz$' | wget -i -
# Extract the archive
tar xzvf harbor-offline-installer-*.tgz
# Navigate to Harbor directory
cd harbor
Schritt 3: Konfigurieren Sie Harbor
Harbor verwendet eine YAML-Konfigurationsdatei, die an Ihre Umgebung angepasst werden muss:
# Copy the template configuration file
cp harbor.yml.tmpl harbor.yml
# Edit the configuration file
nano harbor.yml
Zu ändernde Konfigurationsparameter:
# The hostname or IP address of your Harbor server
hostname: harbor.yourdomain.com
# HTTP configuration
http:
port: 80
# HTTPS configuration (recommended for production)
https:
port: 443
certificate: /path/to/your/certificate.crt
private_key: /path/to/your/private_key.key
# Harbor admin password (change this!)
harbor_admin_password: YourSecurePassword123!
# Database configuration
database:
password: DatabasePassword123!
max_idle_conns: 100
max_open_conns: 900
# Data storage location
data_volume: /data
# Log configuration
log:
level: info
local:
rotate_count: 50
rotate_size: 200M
location: /var/log/harbor
Schritt 4: SSL-Zertifikate generieren (optional, aber empfohlen)
Für Produktionsbereitstellungen verwenden Sie CA-signierte Zertifikate, für Tests können Sie selbstsignierte Zertifikate generieren:
# Create certificate directory
mkdir -p /opt/harbor/certs
cd /opt/harbor/certs
# Generate private key
openssl genrsa -out harbor.key 4096
# Generate certificate signing request
openssl req -new -key harbor.key -out harbor.csr -subj "/C=US/ST=State/L=City/O=Organization/CN=harbor.yourdomain.com"
# Generate self-signed certificate (valid for 365 days)
openssl x509 -req -days 365 -in harbor.csr -signkey harbor.key -out harbor.crt
# Update harbor.yml with certificate paths
# certificate: /opt/harbor/certs/harbor.crt
# private_key: /opt/harbor/certs/harbor.key
Schritt 5: Installieren Sie Harbor mit Trivy Scanner
Trivy ist der Standardscanner seit Harbor v2.2. Um Harbor mit aktiviertem Trivy-Schwachstellenscanner zu installieren:
# Run the installation script with Trivy
sudo ./install.sh --with-trivy
# Verify all containers are running
docker compose ps
Sie sollten die Ausgabe sehen, die alle laufenden Harbor-Dienste anzeigt, einschließlich Hafen-Kern, Hafen-Portal, Hafen-db, Registry, Trivy-Adapter und andere.
Schritt 6: Access Harbor Web Interface
Sobald die Installation abgeschlossen ist, sollten Sie in der Lage sein, in Ihrem Webbrowser unter https://harbor.yourdomain.com auf die Harbor-Benutzeroberfläche zuzugreifen und sich mit dem Administrator und dem von Ihnen festgelegten Passwort anzumelden.
Methode 2: Installieren von Harbor auf Kubernetes mit Helm
Wenn Sie Harbor auf Kubernetes bereitstellen möchten, verwenden Sie bitte das Hafendiagramm. Kubernetes bietet eine bessere Skalierbarkeit, hohe Verfügbarkeit und Integration in Cloud-native Ökosysteme.
Schritt 1: Hafenhelm-Repository hinzufügen
# Add Harbor Helm repository
helm repo add harbor https://helm.goharbor.io
# Update Helm repositories
helm repo update
# Create namespace for Harbor
kubectl create namespace harbor
Schritt 2: Erstellen Helm Werte Datei
Erstellen Sie eine benutzerdefinierte Wertedatei, um Ihre Harbor-Bereitstellung zu konfigurieren:
cat > harbor-values.yaml <<EOF
expose:
type: ingress
tls:
enabled: true
certSource: secret
secret:
secretName: harbor-tls
ingress:
hosts:
core: harbor.yourdomain.com
className: nginx
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
externalURL: https://harbor.yourdomain.com
persistence:
enabled: true
resourcePolicy: "keep"
persistentVolumeClaim:
registry:
storageClass: "fast-ssd"
size: 500Gi
database:
storageClass: "fast-ssd"
size: 10Gi
redis:
storageClass: "fast-ssd"
size: 1Gi
harborAdminPassword: "ChangeThisPassword123!"
database:
type: internal
redis:
type: internal
trivy:
enabled: true
notary:
enabled: true
EOF
Schritt 3: Installieren Sie Harbor über Helm
# Install Harbor
helm install harbor harbor/harbor
-n harbor
-f harbor-values.yaml
# Wait for all components to be ready
kubectl wait --for=condition=available --timeout=600s
deployment --all -n harbor
# Check pod status
kubectl get pods -n harbor
# Get Harbor admin password
kubectl get secret harbor-core -n harbor -o jsonpath='{.data.HARBOR_ADMIN_PASSWORD}' | base64 -d
Konfiguration von Multitenancy in Harbor
Mit der Installation von Harbor besteht der nächste Schritt darin, mehrere Kunden zu konfigurieren, um mehrere Teams, Abteilungen oder Kunden in Ihrem Unternehmen zu unterstützen.
Projekte für Mieter erstellen
Sie können mehrere Projekte in Harbor erstellen, um die Artefakte zu trennen, die von verschiedenen Teams oder Suborganisationen innerhalb eines Unternehmens gespeichert werden.
Erstellen von Projekten über Web Interface
Um ein Projekt über das Hafenportal zu erstellen:
- Melden Sie sich bei Harbor als Administrator an
- Klicken Sie auf "Projekte" im linken Navigationsmenü
- Klicken Sie auf den Button "NEUES PROJEKT"
- Konfigurieren Sie die Projekteinstellungen:
- Projektname: Verwenden Sie einen beschreibenden Namen (z. B. "Team-Frontend", "Customer-acme").
- Zugriffsstufe: Wählen Sie "Public" (jeder kann ziehen) oder "Private" (erfordert Authentifizierung)
- Storage Quota: Setze ein Limit, um zu verhindern, dass ein einzelner Mieter übermäßigen Speicher verbraucht
- Proxy Cache: Optional konfigurieren Sie das Projekt als Proxy-Cache für externe Registraturen
- Klicken Sie auf "OK", um das Projekt zu erstellen
Projekte über API erstellen
Für automatisierte Projekterstellung oder Massenoperationen verwenden Sie die Harbor REST API:
# Set Harbor credentials
HARBOR_URL="https://harbor.yourdomain.com"
HARBOR_USER="admin"
HARBOR_PASSWORD="YourSecurePassword123!"
# Create multiple projects
for project in team-frontend team-backend team-ml customer-alpha customer-beta; do
curl -X POST "${HARBOR_URL}/api/v2.0/projects"
-H "Content-Type: application/json"
-u "${HARBOR_USER}:${HARBOR_PASSWORD}"
-d "{
"project_name": "${project}",
"public": false,
"storage_limit": 107374182400
}"
echo "Created project: $project"
done
# List all projects
curl -X GET "${HARBOR_URL}/api/v2.0/projects"
-u "${HARBOR_USER}:${HARBOR_PASSWORD}" | jq .
Konfiguration von Einstellungen auf Projektebene
Jedes Projekt in Harbor kann unabhängig mit Einstellungen konfiguriert werden, die Sicherheitsrichtlinien und Ressourcenbeschränkungen durchsetzen.
Lagerquoten
Speicherquoten verhindern, dass einzelne Mandanten übermäßigen Speicherplatz verbrauchen:
- Navigieren Sie zum Projekt
- Klicken Sie auf den Tab "Konfiguration"
- Legen Sie unter "Ressourcenmanagement" die Speicherquote fest (z.B. 100 GB)
- Klicken Sie auf "Save"
Sicherheitsanfälligkeit Scannen Richtlinien
Konfigurieren Sie das automatische Schwachstellen-Scannen für Bilder, die in das Projekt geschoben werden:
- Gehen Sie zum Projekt "Konfiguration"
- Aktivieren Sie "Bilder automatisch auf Push scannen"
- Setzen Sie "Verhindern, dass anfällige Bilder ausgeführt werden", um Bilder mit kritischen Sicherheitslücken zu blockieren
- Schweregradschwellenwert konfigurieren (z. B. Blockbilder mit "High"- oder "Critical"-Schwachstellen)
Tag Retention Policies
Aufbewahrungsrichtlinien bereinigen automatisch alte oder unbenutzte Bilder, um den Speicher effizient zu verwalten:
- Navigieren Sie zum Projekt "Policy" Tab
- Klicken Sie auf "Regel hinzufügen" unter Tag Retention
- Konfigurieren Sie die Aufbewahrungskriterien:
- Repository matching pattern (z. B. "**" für alle Repositorys)
- Retentionsregel (z.B. "Behalten Sie die zuletzt geschobenen 10 Artefakte")
- Tag-Matching-Muster (z. B. Ausschließen von "neuesten" und "Produktions"-Tags)
- Klicken Sie auf "Add" und dann auf "Run Now", um die Richtlinie zu testen
Content Trust und Image Signing
Aktivieren Sie das Vertrauen in Inhalte, um sicherzustellen, dass nur signierte Bilder gezogen werden können:
- Im Projekt "Konfiguration" aktivieren Sie "Content Trust aktivieren"
- Dies erfordert, dass Bilder mit Docker Content Trust oder Cosign signiert werden.
- Nicht signierte Bilder werden abgelehnt, wenn Benutzer versuchen, sie zu ziehen
Verwalten von Benutzerzugriff und Berechtigungen
Effektive Multi-Tenancy erfordert eine sorgfältige Verwaltung des Benutzerzugriffs und der Berechtigungen, um sicherzustellen, dass die Mandanten nur auf ihre angegebenen Ressourcen zugreifen können.
User Management Strategien
Harbor unterstützt mehrere Authentifizierungs-Backends, sodass Sie den Ansatz auswählen können, der am besten zur Identitätsmanagement-Infrastruktur Ihres Unternehmens passt.
Lokale Benutzerverwaltung
Für kleine Bereitstellungen oder Tests können Sie Benutzer direkt in Harbor erstellen:
- Loggen Sie sich als Admin ein
- Navigieren Sie zu "Verwaltung" → "Benutzer"
- Klicken Sie auf "NEUER NUTZER"
- Geben Sie die Benutzerdaten (Benutzername, E-Mail, vollständiger Name, Passwort) an.
- Klicken Sie auf "OK"
LDAP/Active Directory Integration
Für Unternehmensimplementierungen integrieren Sie Harbor in Ihr bestehendes LDAP oder Active Directory:
- Navigieren Sie zu "Administration" → "Konfiguration" → "Authentication"
- Wählen Sie "LDAP" als Authentifizierungsmodus
- LDAP-Einstellungen konfigurieren:
- LDAP URL: ldap://ldap.yourdomain.com:389
- LDAP Search DN: cn=admin,dc=yourdomain,dc=com
- LDAP Base DN: dc=yourdomain,dc=com
- LDAP Filter: (objectClass=person)
- LDAP UID: uid
- LDAP Scope: Subtree
- Testen Sie die Verbindung
- Klicken Sie auf "Save"
OIDC-Integration
Für moderne Identitätsanbieter wie Okta, Auth0 oder Keycloak:
- Wählen Sie in den Einstellungen "Authentication" "OIDC" aus
- OIDC-Parameter konfigurieren:
- OIDC Provider Name: Dein Providername
- OIDC-Endpunkt: https://your-idp.com
- OIDC Client ID: Ihre Client ID
- OIDC Client Secret: Dein Client Secret
- OIDC Scope: openid,profile,email
- Verifizieren und speichern
Zuweisung von Benutzern zu Projekten
Sobald Benutzer authentifiziert sind, weisen Sie sie Projekten mit entsprechenden Rollen zu:
- Navigieren Sie zum Projekt
- Klicken Sie auf den Tab "Mitglieder"
- Klicken Sie auf "USER" oder "GROUP", um Mitglieder hinzuzufügen
- Suche nach dem Benutzer oder der Gruppe
- Wählen Sie die passende Rolle:
- Gast: Nur Lesezugriff auf Pull-Bilder
- Entwickler: kann Bilder schieben und ziehen
- Maintainer: Kann Projektmitglieder verwalten und Einstellungen konfigurieren
- Projektadministrator: Volle Kontrolle über das Projekt
- Klicken Sie auf "OK"
Roboterkonten für CI/CD Integration
Roboterkonten sind Servicekonten in Harbor mit spezifischen Berechtigungen, die für automatisierte Vorgänge wie CI/CD-Pipelines verwendet werden, die Bilder schieben oder ziehen, ohne dass menschliche Anmeldeinformationen erforderlich sind.
So erstellen Sie ein Roboterkonto:
- Navigieren Sie zum Projekt
- Klicken Sie auf den Tab "Robot Accounts"
- Klicken Sie auf "NEW ROBOT ACCOUNT"
- Konfigurieren Sie das Roboterkonto:
- Name: Beschreibender Name (z. B. "ci-pipeline-bot")
- Verfallszeit: Legen Sie ein Verfallsdatum für die Sicherheit fest
- Permissions: Wählen Sie bestimmte Repositories und Aktionen (Push, Pull, Deletion) aus.
- Klicken Sie auf "ADD"
- Kopieren Sie den generierten Token sofort (es wird nicht erneut angezeigt)
Verwenden Sie das Roboterkonto in Ihrer CI/CD-Pipeline:
# In your CI/CD pipeline (e.g., GitLab CI, Jenkins)
docker login harbor.yourdomain.com -u 'robot$ci-pipeline-bot' -p 'TOKEN_HERE'
docker build -t harbor.yourdomain.com/team-frontend/app:${CI_COMMIT_SHA} .
docker push harbor.yourdomain.com/team-frontend/app:${CI_COMMIT_SHA}
Sicherheitsfunktionen für Multi-Tenant-Umgebungen
Sicherheit ist in Umgebungen mit mehreren Mandanten von größter Bedeutung, in denen mehrere Teams oder Kunden die Infrastruktur teilen. Harbor bietet umfassende Sicherheitsfunktionen zum Schutz Ihrer Containerlieferkette.
Sicherheitslücken Scannen
Durch die Verwendung von gängigen Bildscannern, wie Trivy, können Bilder automatisch auf bekannte Schwachstellen gescannt werden, und die Ergebnisse dieser Scans können genutzt werden, um das Ziehen von Artefakten mit unadressierten Sicherheitsproblemen zu verhindern.
Konfiguration des automatischen Scannens
Automatisches Scannen auf System- oder Projektebene ermöglichen:
- Für systemweites Scannen: "Administration" → "Interrogation Services" → Trivy-Einstellungen konfigurieren
- Für Projekt-Level-Scanning: Projekt → "Konfiguration" → Aktivieren Sie "Bilder automatisch auf Push scannen"
- Richten Sie geplante Scans ein, um vorhandene Bilder auf neu entdeckte Schwachstellen zu scannen
Vulnerabilitätspräventionspolitik
Konfigurieren Sie Richtlinien, um zu verhindern, dass gefährdete Bilder bereitgestellt werden:
- Im Projekt "Konfiguration" aktivieren Sie "Verhindern, dass anfällige Bilder ausgeführt werden"
- Setzen Sie den Schweregrad-Schwellenwert (z. B. "High" oder "Critical")
- Bilder mit Sicherheitslücken an oder über diesem Schwellenwert können nicht gezogen werden
Anzeige von Scan-Ergebnissen
Um die Ergebnisse des Vulnerability Scans anzuzeigen:
- Navigieren Sie zum Projekt und Repository
- Klicken Sie auf ein Artefakt / Tag
- Sehen Sie sich die Registerkarte "Schwachstellen" für detaillierte Scan-Ergebnisse an
- Überprüfen Sie CVE-Details, Schweregrade und verfügbare Fixes
Image Signing und Content Trust
Harbor unterstützt die Signatur von Containerbildern mit Docker Content Trust (Notar), um Authentizität und Herkunft zu gewährleisten, und Richtlinien, die die Bereitstellung nicht signierter Bilder verhindern, können ebenfalls aktiviert werden.
Content Trust ermöglichen
Um Content Trust für ein Projekt zu ermöglichen:
- Navigieren Sie zum Projekt "Konfiguration"
- Aktivieren Sie "Content Trust aktivieren"
- Aktivieren Sie "Verhindern, dass nicht signierte Bilder gezogen werden"
Signieren von Bildern mit Docker Content Trust
# Enable Docker Content Trust
export DOCKER_CONTENT_TRUST=1
export DOCKER_CONTENT_TRUST_SERVER=https://harbor.yourdomain.com:4443
# Push and sign an image
docker push harbor.yourdomain.com/team-frontend/app:v1.0
# The first push will prompt you to create signing keys
# Follow the prompts to set passphrases for root and repository keys
Unterschreiben mit Cosign
Für moderne Signatur-Workflows verwenden Sie Cosign:
# Install Cosign
curl -O -L "https://github.com/sigstore/cosign/releases/latest/download/cosign-linux-amd64"
sudo mv cosign-linux-amd64 /usr/local/bin/cosign
sudo chmod +x /usr/local/bin/cosign
# Generate key pair
cosign generate-key-pair
# Sign an image
cosign sign --key cosign.key harbor.yourdomain.com/team-frontend/app:v1.0
# Verify signature
cosign verify --key cosign.pub harbor.yourdomain.com/team-frontend/app:v1.0
Audit Logging und Compliance
Alle Vorgänge in den Repositories werden über Protokolle verfolgt. Harbor unterhält umfassende Auditprotokolle, die alle Benutzeraktivitäten verfolgen, was es einfacher macht, Compliance-Anforderungen zu erfüllen und Sicherheitsvorfälle zu untersuchen.
Anzeigen von Audit Logs
- Navigieren Sie zu "Administration" → "Logs"
- Filtern Sie die Logs nach:
- Benutzername
- Art der Operation (Push, Pull, Delection, Create usw.)
- Ressourcentyp (Projekt, Repository, Artefakt)
- Zeitintervall
- Exportieren von Protokollen für externe Analysen oder Archivierung
Integration mit SIEM Systemen
Für die Compliance von Unternehmen integrieren Sie Harbor-Logs in Ihr SIEM-System:
# Configure Harbor to send logs to syslog
# Edit harbor.yml
log:
level: info
external_endpoint:
protocol: tcp
host: syslog.yourdomain.com
port: 514
# Restart Harbor to apply changes
docker compose down
docker compose up -d
Netzwerksicherheit und Zugriffskontrolle
Konfiguration von HTTPS
Verwenden Sie HTTPS immer in der Produktion, um Datenübertragungen zu verschlüsseln:
- Erhalten Sie SSL/TLS-Zertifikate von einer vertrauenswürdigen CA (Let's Encrypt, DigiCert, etc.)
- Konfigurieren Sie harbor.yml mit Zertifikatspfaden
- Hafen neu starten
Firewall-Konfiguration
Beschränken Sie den Zugriff auf Harbor mithilfe von Firewall-Regeln:
# Allow HTTPS traffic
sudo ufw allow 443/tcp
# Allow HTTP (if needed for redirect)
sudo ufw allow 80/tcp
# Allow Notary (if using Docker Content Trust)
sudo ufw allow 4443/tcp
# Restrict access to specific IP ranges (optional)
sudo ufw allow from 10.0.0.0/8 to any port 443 proto tcp
# Enable firewall
sudo ufw enable
Bildreplikation für Multi-Site-Bereitstellungen
Bilder und Diagramme können zwischen mehreren Registrierungsinstanzen repliziert (synchronisiert) werden, basierend auf Richtlinien mit Verwendung von Filtern (Repository, Tag und Label), und Harbor wiederholt automatisch eine Replikation, wenn Fehler auftreten, die verwendet werden können, um das Loadbalancing zu unterstützen, eine hohe Verfügbarkeit zu erreichen und Multi-Datacenter-Bereitstellungen in Hybrid- und Multi-Cloud-Szenarien zu erleichtern.
Einrichten von Replikationsendpunkten
Replikationsziele umfassen andere Harbor-Instanzen, Docker Hub, AWS ECR, Google GCR/GAR, Azure ACR und jede OCI-kompatible Registrierung.
So konfigurieren Sie einen Replikationsendpunkt:
- Navigieren Sie zu "Administration" → "Registrierungen"
- Klicken Sie auf "NEW ENDPOINT"
- Endpunktdetails konfigurieren:
- Anbieter: Wählen Sie den Registrierungstyp (Harbor, Docker Hub, AWS ECR, etc.)
- Name: Beschreibender Name für den Endpunkt
- Endpunkt-URL: Registry URL
- Zugriffs-ID/Geheimnis: Authentifizierungsdaten
- Testen Sie die Verbindung
- Klicken Sie auf "OK"
Erstellen von Replikationsregeln
Definieren Sie Replikationsrichtlinien, um Bilder automatisch zu synchronisieren:
- Navigieren Sie zu "Administration" → "Replications"
- Klicken Sie auf "NEW REPLICATION RULE"
- Konfigurieren Sie die Regel:
- Name: Deskriptiver Regelname
- Replikationsmodus: Push (zur Fernbedienung) oder Pull (von der Fernbedienung)
- Quellenregistrierung: Quelle auswählen
- Zielregistrierung: Zielendpunkt auswählen
- Triggermodus: Manuell, geplant oder ereignisbasiert
- Filter: Geben Sie an, welche Repositories, Tags oder Labels repliziert werden sollen.
- Klicken Sie auf "SAVE"
Use Cases für Replikation
- Disaster Recovery: Replizieren Sie kritische Bilder auf eine sekundäre Harbor-Instanz in einer anderen Region
- Geografische Verteilung: Synchronisieren Sie Bilder mit regionalen Registern für schnellere Pull-Zeiten
- Hybrid Cloud: Replizieren zwischen lokalen Harbor- und Cloud-Registern
- Entwicklungs-/Produktionstrennung: Bilder vom Entwickler in Produktionsregister fördern
Arbeiten mit Harbor: Praktische Workflows
Sobald Harbor für Multi-Tenancy konfiguriert ist, können Teams damit beginnen, es für ihre Container-Workflows zu verwenden.
Bilder nach Harbor schieben
Um ein Bild nach Harbor zu schieben:
# Log in to Harbor
docker login harbor.yourdomain.com
# Tag your image with Harbor registry path
docker tag myapp:latest harbor.yourdomain.com/team-frontend/myapp:v1.0
# Push the image
docker push harbor.yourdomain.com/team-frontend/myapp:v1.0
Bilder aus Harbor
# Log in to Harbor (if pulling private images)
docker login harbor.yourdomain.com
# Pull the image
docker pull harbor.yourdomain.com/team-frontend/myapp:v1.0
# Run the container
docker run -d harbor.yourdomain.com/team-frontend/myapp:v1.0
Mit Harbor mit Kubernetes
Um Bilder aus Harbor in Kubernetes zu ziehen, erstellen Sie ein Image Pull Secret:
# Create a Docker registry secret
kubectl create secret docker-registry harbor-registry
--docker-server=harbor.yourdomain.com
--docker-username=your-username
--docker-password=your-password
[email protected]
-n your-namespace
# Reference the secret in your pod spec
apiVersion: v1
kind: Pod
metadata:
name: myapp
spec:
containers:
- name: myapp
image: harbor.yourdomain.com/team-frontend/myapp:v1.0
imagePullSecrets:
- name: harbor-registry
Proxy Cache für externe Registrierungen
Die Proxy-Cache-Funktion von Harbor ermöglicht es Harbor, als Caching-Proxy für externe Register zu fungieren, wodurch die Bandbreitennutzung reduziert und die Pull-Performance verbessert wird.
So konfigurieren Sie ein Proxy-Cache-Projekt:
- Erstellen Sie ein neues Projekt
- Wählen Sie "Proxy Cache" als Projekttyp
- Wählen Sie die Zielregistrierung (Docker Hub, Quay.io, etc.)
- Konfigurieren von Anmeldeinformationen, falls erforderlich
- Pull-Bilder durch Harbor mit dem Proxy-Cache-Pfad
# Instead of pulling from Docker Hub directly
docker pull nginx:latest
# Pull through Harbor proxy cache
docker pull harbor.yourdomain.com/dockerhub-proxy/library/nginx:latest
Backup und Disaster Recovery
Der Schutz Ihrer Hafenbereitstellung und ihrer Daten ist für die Geschäftskontinuität von entscheidender Bedeutung.
Backing Up Hafendaten
Harbor verwendet eine Datenbank zum Speichern seiner Daten und standardmäßig eine PostgreSQL-Datenbank, die von Docker verwaltet wird.
Um Harbor zu unterstützen:
# Stop Harbor
cd /opt/harbor
docker compose down
# Backup the data directory
sudo tar -czf harbor-backup-$(date +%Y%m%d).tar.gz /data
# Backup the configuration
sudo cp harbor.yml harbor.yml.backup
# Backup the database (if using external database)
docker exec harbor-db pg_dump -U postgres registry > harbor-db-backup-$(date +%Y%m%d).sql
# Restart Harbor
docker compose up -d
Automatisiertes Backup Script
#!/bin/bash
# harbor-backup.sh
BACKUP_DIR="/backup/harbor"
DATE=$(date +%Y%m%d-%H%M%S)
HARBOR_DIR="/opt/harbor"
DATA_DIR="/data"
# Create backup directory
mkdir -p $BACKUP_DIR
# Stop Harbor
cd $HARBOR_DIR
docker compose down
# Backup data volume
tar -czf $BACKUP_DIR/harbor-data-$DATE.tar.gz $DATA_DIR
# Backup configuration
cp $HARBOR_DIR/harbor.yml $BACKUP_DIR/harbor-config-$DATE.yml
# Restart Harbor
docker compose up -d
# Remove backups older than 30 days
find $BACKUP_DIR -name "harbor-*" -mtime +30 -delete
echo "Backup completed: $BACKUP_DIR/harbor-data-$DATE.tar.gz"
Planen Sie dieses Skript mit cron:
# Run backup daily at 2 AM
0 2 * * * /usr/local/bin/harbor-backup.sh >> /var/log/harbor-backup.log 2>&1
Wiederherstellung aus dem Backup
# Stop Harbor
cd /opt/harbor
docker compose down
# Restore data directory
sudo rm -rf /data
sudo tar -xzf /backup/harbor/harbor-data-20260402.tar.gz -C /
# Restore configuration
sudo cp /backup/harbor/harbor-config-20260402.yml /opt/harbor/harbor.yml
# Restart Harbor
docker compose up -d
Überwachung und Performance-Optimierung
Die Überwachung von Harbors Gesundheit und Leistung sorgt für einen optimalen Betrieb und hilft, Probleme zu identifizieren, bevor sie sich auf die Benutzer auswirken.
Überwachung der Hafengesundheit
Harbor zeigt Gesundheitscheck-Endpunkte:
# Check Harbor health
curl -k https://harbor.yourdomain.com/api/v2.0/health
# Expected response
{
"status": "healthy",
"components": [
{"name": "core", "status": "healthy"},
{"name": "database", "status": "healthy"},
{"name": "redis", "status": "healthy"},
{"name": "registry", "status": "healthy"}
]
}
Prometheus-Metriken
Harbor zeigt Prometheus-Metriken für die Überwachung:
# Enable metrics in harbor.yml
metric:
enabled: true
port: 9090
path: /metrics
# Scrape metrics with Prometheus
curl http://harbor.yourdomain.com:9090/metrics
Performance Optimierung Tipps
- Verwenden Sie SSD-Speicher: Speichern Sie Hafendaten auf schnellen SSD-Laufwerken für eine bessere I/O-Leistung
- Redis-Caching konfigurieren: Stellen Sie sicher, dass Redis ausreichend Speicher zugewiesen hat
- Database tuning: Optimieren Sie PostgreSQL-Einstellungen für Ihre Arbeitslast
- Bagage Collection aktivieren: Plane die reguläre Garbage Collection, um den Speicher zurückzufordern
- Verwenden Sie Proxy-Cache: Reduzieren Sie externe Registrierungs-Pulls durch Caching häufig verwendeter Bilder
- Replikation implementieren: Ladelast über mehrere Harbor-Instanzen verteilen
Sammlung von Abfällen
Garbage Collection ist der Prozess der Rückgewinnung von Speicherplatz durch Entfernen von nicht referenzierten Blobs und Artefakten, die nicht mehr benötigt werden.
Um die Garbage Collection auszuführen:
- Navigieren Sie zu "Verwaltung" → "Garbage Collection"
- Klicken Sie auf "GC NOW" für sofortige Sammlung
- Oder planen Sie die regelmäßige Müllsammlung (z. B. wöchentlich um 2 Uhr)
Problembehandlung bei gemeinsamen Problemen
Bilder nicht pushen können
Symptome: "denied: requested access to the resource is denied" Fehler
Lösungen:
- Vergewissern Sie sich, dass der Benutzer eine Entwickler- oder höhere Rolle im Projekt hat
- Überprüfen Sie, ob die Projektspeicherquote nicht überschritten wurde
- Stellen Sie sicher, dass der Benutzer authentifiziert ist:
- Projektname im Image-Tag wird mit dem bestehenden Projekt verglichen
SSL-Zertifikatsfehler
Symptome: "x509: Zertifikat von unbekannter Autorität signiert" Fehler
Lösungen:
- Hinzufügen von Harbors CA-Zertifikat zu Dockers vertrauenswürdigen Zertifikaten
- Für selbstsignierte Zertifikate kopieren Sie das CA-Zertifikat in
- Starten Sie Docker Daemon neu:
Langsames Bild Push/Pull
Symptome: Image-Operationen dauern übermäßig lange
Lösungen:
- Überprüfen Sie die Netzwerkbandbreite und -latenz
- Überprüfen der Storage I/O Performance
- Erhöhen Sie Docker Daemons maximale gleichzeitige Uploads / Downloads
- Erwägen Sie die Verwendung von Harbor Replikation für geografisch verteilte Teams
- Proxy-Cache für häufig gezogene externe Bilder aktivieren
Probleme mit der Datenbankverbindung
Symptome: Harbor UI zeigt Fehler oder wird nicht geladen
Lösungen:
- Prüfen Sie den Datenbank-Containerstatus:
- Überprüfen Sie die Datenbankanmeldeinformationen in harbor.yml
- Datenbankprotokolle überprüfen:
- Sicherstellen, dass die Datenbank über ausreichende Ressourcen verfügt (CPU, Speicher, Festplatte)
Erweiterte Multitenancy-Szenarien
Kundenorientierte Containerverteilung
Harbor kann verwendet werden, um containerisierte Software an externe Kunden zu verteilen:
- Erstellen Sie separate Projekte für jeden Kunden
- Verwenden Sie Roboterkonten mit Ablaufdatum für den Kundenzugang
- Implementieren Sie Webhook-Benachrichtigungen, wenn neue Versionen verfügbar sind
- Replikation in kundenspezifischen Registern einrichten, falls erforderlich
- Verwenden Sie Projektkontingente, um den Speicher pro Kunde zu verwalten
Einsatz von mehreren Regionen
Für globale Organisationen, setzen Sie Harbor in mehreren Regionen ein:
- Bereitstellung von Harbor-Instanzen in jeder größeren Region (USA, EU, APAC)
- Bidirektionale Replikation zwischen Instanzen konfigurieren
- Verwenden Sie DNS-basiertes Load-Balancing, um Benutzer zur nächsten Instanz zu leiten
- Implementieren Sie konsistente LDAP/OIDC-Authentifizierung über alle Instanzen hinweg
- Zentralisieren Sie die Überwachung und Protokollierung für alle Instanzen
Compliance und regulatorische Anforderungen
Für regulierte Branchen (Gesundheit, Finanzen, Regierung):
- Ermöglichen Sie umfassende Audit-Loging
- Implementieren Sie obligatorisches Schwachstellen-Scannen mit Blockierungsrichtlinien
- Image Signing für alle Produktionsbilder erforderlich
- Konfigurieren von Aufbewahrungsrichtlinien zur Erfüllung der Anforderungen an die Datenaufbewahrung
- Verwenden Sie die LDAP/AD-Integration für eine zentrale Zugriffskontrolle
- Implementieren Sie Netzwerksegmentierungs- und Firewall-Regeln
- Regelmäßige Backup- und Disaster Recovery-Tests
- Dokumentieren Sie alle Sicherheitskontrollen und -verfahren
Best Practices für Multi-Tenant Harbor Deployments
Best Practices für Sicherheit
- Verwende immer HTTPS: Niemals Harbor über HTTP in der Produktion laufen lassen
- Verändern Sie die Standardpasswörter: Ändern Sie das Admin-Passwort nach der Installation sofort
- Verletzlichkeitsscanning aktivieren: Automatisches Scannen auf Push konfigurieren
- Implementieren Sie Image Signing: Signierte Bilder für die Bereitstellung von Produktionen benötigen
- Verwenden Sie Roboterkonten: Verwenden Sie niemals persönliche Anmeldeinformationen in CI/CD-Pipelines.
- Regelmäßige Sicherheitsupdates: Halten Sie Harbor und seine Komponenten auf dem neuesten Stand
- Prinzip der geringsten Privilegien: Gewähren Sie Benutzern die minimal erforderlichen Berechtigungen
- Auditprotokollierung aktivieren: Logs regelmäßig überwachen und überprüfen
Best Practices für den Betrieb
- Backup-Strategie implementieren: Regelmäßige automatisierte Backups mit getesteten Wiederherstellungsprozeduren
- Monitor-Ressourcennutzung: Track Storage, CPU, Memory und Netzwerkmetriken
- Stellen Sie Speicherquoten: Verhindern Sie, dass einzelne Projekte übermäßige Speicherkapazität verbrauchen
- Konfigurieren Sie Aufbewahrungsrichtlinien: Bereinigen Sie automatisch alte oder unbenutzte Bilder
- Plane Garbage Collection: Regelmäßige Bereinigung, um Speicherplatz zurückzufordern
- Dokumentationsverfahren: Bewahren Sie die Dokumentation für gemeinsame Operationen und Fehlersuche auf
- Test Disaster Recovery: Testen Sie regelmäßig Backup-Restaurations- und Failover-Verfahren
- Kapazitätsplanung: Überwachen Sie Wachstumstrends und planen Sie die Skalierung
Organisatorische Best Practices
- Namenskonventionen: Etablieren Sie eine konsistente Benennung für Projekte, Repositories und Tags
- Projektstruktur: Organisieren Sie Projekte nach Team, Anwendung oder Umgebung
- Zugriffskontrollrichtlinien: Definieren Sie klare Richtlinien, wer auf was zugreifen kann
- Tagging-Strategie: Verwenden Sie semantische Versionierung und sinnvolle Tags
- Schulung und Dokumentation: Stellen Sie sicher, dass die Teams verstehen, wie man Harbor effektiv nutzt
- Änderungsmanagement: Implementieren Sie Genehmigungsprozesse für Konfigurationsänderungen
- Kommunikation: Einrichtung von Kanälen für die Ankündigung von Wartung und Updates
Integrieren von Harbor mit Ihrem DevOps-Ökosystem
CI/CD Pipeline Integration
Beispiel GitLab CI Pipeline:
stages:
- build
- scan
- deploy
variables:
HARBOR_REGISTRY: harbor.yourdomain.com
HARBOR_PROJECT: team-frontend
IMAGE_NAME: myapp
build:
stage: build
script:
- docker login -u robot$ci-bot -p $HARBOR_TOKEN $HARBOR_REGISTRY
- docker build -t $HARBOR_REGISTRY/$HARBOR_PROJECT/$IMAGE_NAME:$CI_COMMIT_SHA .
- docker push $HARBOR_REGISTRY/$HARBOR_PROJECT/$IMAGE_NAME:$CI_COMMIT_SHA
scan:
stage: scan
script:
- |
# Wait for Harbor to scan the image
sleep 30
# Check scan results via Harbor API
SCAN_STATUS=$(curl -u robot$ci-bot:$HARBOR_TOKEN
"$HARBOR_REGISTRY/api/v2.0/projects/$HARBOR_PROJECT/repositories/$IMAGE_NAME/artifacts/$CI_COMMIT_SHA"
| jq -r '.scan_overview.scan_status')
if [ "$SCAN_STATUS" != "Success" ]; then
echo "Vulnerability scan failed"
exit 1
fi
deploy:
stage: deploy
script:
- kubectl set image deployment/myapp myapp=$HARBOR_REGISTRY/$HARBOR_PROJECT/$IMAGE_NAME:$CI_COMMIT_SHA
only:
- main
Webhook-Integration
Konfigurieren Sie Webhooks, um Aktionen auszulösen, wenn Bilder gedrückt werden:
- Navigieren Sie zum Projekt "Webhooks"
- Klicken Sie auf "NEW WEBHOOK"
- Konfigurieren Sie Webhook:
- Endpunkt-URL: Ihre Webhook-Empfänger-URL
- Events: Wählen Sie Ereignisse aus, die ausgelöst werden sollen (push, pull, delete, scan completed)
- Authentisierung: Konfigurieren Sie die Authentifizierung, falls erforderlich
- Testen Sie den Webhook
- Klicken Sie auf "CONTINUE"
Helm Chart Repository
Harbor kann auch als Helm-Diagramm-Repository dienen:
# Add Harbor as Helm repository
helm repo add myteam https://harbor.yourdomain.com/chartrepo/team-frontend
--username your-username
--password your-password
# Push a Helm chart to Harbor
helm package ./mychart
helm push mychart-1.0.0.tgz myteam
# Install from Harbor
helm install myapp myteam/mychart
Zukunftssichere Bereitstellung Ihres Hafens
Bleiben Sie auf dem Laufenden mit Updates
Beginnend mit v2.15.0 werden die Harbor Release Artefakte kryptographisch mit Cosign signiert, um Authentizität und Integrität zu gewährleisten.
# Download Harbor release and signature
wget https://github.com/goharbor/harbor/releases/download/v2.15.0/harbor-offline-installer-v2.15.0.tgz
wget https://github.com/goharbor/harbor/releases/download/v2.15.0/harbor-offline-installer-v2.15.0.tgz.sigstore.json
# Verify signature
cosign verify-blob
--bundle harbor-offline-installer-v2.15.0.tgz.sigstore.json
--certificate-oidc-issuer https://token.actions.githubusercontent.com
--certificate-identity-regexp '^https://github.com/goharbor/harbor/.github/workflows/publish_release.yml@refs/tags/v.*$'
harbor-offline-installer-v2.15.0.tgz
Skalierungsüberlegungen
Wenn Ihre Organisation wächst, sollten Sie Folgendes berücksichtigen:
- Horizontale Skalierung: Deploye multiple Harbor Instanzs with Load Balancing
- Externe Datenbank: Verwenden Sie verwaltetes PostgreSQL für bessere Skalierbarkeit und Zuverlässigkeit
- Externes Redis: Verwenden Sie verwaltetes Redis oder Redis-Cluster für das Caching
- Objektspeicher: Verwenden Sie S3, Azure Blob oder GCS für die Bildspeicherung anstelle der lokalen Festplatte
- CDN-Integration: CDN für globale Bildverteilung verwenden
Emerging Use Cases
Harbor war schon immer OCI-konform, d.h. es kann jedes Artefakt speichern und verteilen, das der OCI-Verteilungsspezifikation entspricht, und die Erweiterbarkeit der OCI-Spezifikation bedeutet, dass KI-Modelle nun dieselbe Infrastruktur mit der gleichen Sicherheit, Governance und Betriebsreife nutzen können.
- AI/ML-Modellregistrierung: Speichern und Verteilen von Machine Learning-Modellen als OCI-Artefakte
- WASM-Module: Verteilen von WebAssembly-Modulen
- Software Bill of Materials (SBOM): Speichern und Verwalten von SBOMs neben Bildern
- Policy bundles: Distributing OPA policies and other configuration artefacts
Schlussfolgerung
Der Aufbau einer Multi-Tenant-Docker-Registrierung mit Harbor bietet Unternehmen eine leistungsstarke, sichere und skalierbare Lösung für die Verwaltung von Containerbildern in Teams, Abteilungen und sogar Kunden. Harbor schließt die Lücke als Open-Source-Containerregistrierung für Unternehmen, die Sicherheit, Leistung und Souveränität in das Containerbildmanagement einbringt, sich nahtlos in bestehende operative Paradigmen integriert und eine robuste Lösung für moderne Anforderungen an das Containerbildmanagement bietet.
Durch die Implementierung der in diesem Handbuch beschriebenen Praktiken – von der ordnungsgemäßen Installation und Konfiguration über die Sicherheitshärtung, die Einrichtung mehrerer Mandanten und die Best Practices für den Betrieb – können Sie eine produktionsfähige Harbor-Bereitstellung erstellen, die den heutigen Anforderungen Ihres Unternehmens entspricht und gleichzeitig flexibel genug ist, um sich an zukünftige Anforderungen anzupassen.
Wichtige Takeaways für erfolgreiche Harbor Multitenancy:
- Projekte sind die Grundlage: Projekte verwenden, um isolierte Namensräume für verschiedene Mandanten zu erstellen
- Sicherheit steht an erster Stelle: Aktivieren Sie Schwachstellen-Scanning, Bildsignierung und umfassendes Audit-Logging
- Automatisierung ist unerlässlich: Verwenden Sie Roboterkonten, Webhooks und API-Integration für CI/CD-Workflows
- Plan für die Skalierung: Implementieren Sie Replikation, Überwachung und Kapazitätsplanung von Anfang an
- Bleiben Sie engagiert: Treten Sie der Hafen-Community bei, bleiben Sie mit Updates auf dem Laufenden und tragen Sie zurück
Ob Sie Container für ein kleines Entwicklungsteam verwalten oder eine große Multi-Tenant-Plattform für Hunderte von Kunden betreiben, Harbor bietet die Funktionen, Flexibilität und Community-Unterstützung, die für den Erfolg erforderlich sind. Beginnen Sie mit den Grundlagen, implementieren Sie Best Practices für die Sicherheit und übernehmen Sie schrittweise erweiterte Funktionen, wenn sich Ihre Bedürfnisse ändern.
Für weitere Informationen und Ressourcen besuchen Sie die offizielle Harbor-Website, erkunden Sie das GitHub-Repository, treten Sie der Community auf Slack bei und lesen Sie die umfassende Harbor-Dokumentation. Die Harbor-Community ist aktiv, einladend und bereit, Ihnen beim Erfolg Ihrer Containerregistrierung zu helfen.