Harbor-Instanzen verwenden TLS-Zertifikate (Transport Layer Security), die von der vertrauenswürdigen Root-Zertifizierungsstelle (CA) Ihrer Organisation ausgestellt wurden. Dadurch wird die Verbindung zwischen Ihrem Docker-Client und der Harbor-Registry verschlüsselt, um Images vor unbefugtem Zugriff zu schützen.
Auf dieser Seite wird beschrieben, wie Sie den Docker-Client auf Ihrer Workstation so konfigurieren, dass er der Harbor-Root-CA vertraut. Sie müssen die Vertrauensstellung auf den Knoten Ihrer Kubernetes-Cluster nicht konfigurieren, da GDC die Clusterknoten so konfiguriert, dass sie Ihren Harbor-Registry-Instanzen automatisch vertrauen. Weitere Informationen finden Sie unter Clusterknoten-Trust für Harbor-Registry-Instanzen.
Hinweis
Sie müssen diese Schritte ausführen, bevor Sie Ihre Container-Images verwalten:
- Installieren Sie Docker, falls es noch nicht installiert ist. Folgen Sie dazu der Anleitung unter https://docs.docker.com/engine/install/ubuntu/. Docker ist in Cloud Shell enthalten.
Docker benötigt für die Interaktion mit Registries Zugriff. Fügen Sie unter Linux oder Windows den Nutzer, den Sie zum Ausführen von Docker-Befehlen verwenden, der Docker-Sicherheitsgruppe hinzu. Dieser Schritt ist unter macOS nicht erforderlich, da Docker Desktop auf einer virtuellen Maschine als Root-Nutzer ausgeführt wird.
Fügen Sie unter Linux den Nutzer hinzu:
sudo usermod -a -G docker USERFür Windows:
net localgroup docker-users DOMAIN\Upan>SER /addErsetzen Sie
USERdurch den Nutzernamen, den Sie hinzufügen möchten.
Docker so konfigurieren, dass der Harbor-Stamm-CA vertraut wird
Sie müssen Ihren lokalen Docker-Client so konfigurieren, dass er der Stamm-CA Ihrer Organisation vertraut, wenn Sie den Docker-Client für die Kommunikation mit der Harbor-Instanz verwenden.
Wenn Sie den Docker-Client so konfigurieren möchten, dass er der Stammzertifizierungsstelle vertraut, fordern Sie die Datei .crt der Stammzertifizierungsstelle von Ihrem Organisationsadministrator an und kopieren Sie die Stammzertifizierungsstelle der Organisation nach:
/etc/docker/certs.d/HARBOR_INSTANCE_URL/ca.crt
Ersetzen Sie HARBOR_INSTANCE_URL durch die URL Ihrer Harbor-Instanz. Beispiel: harbor-1.org-1.zone1.google.gdc.test.
Mit diesem Befehl kann Ihr Docker-Client eine HTTPS-Verbindung zur Harbor-Instanz herstellen.
Alternativ können Sie sich mit der gdcloud CLI in der Organisation anmelden, die kubeconfig-Datei für den Management API-Server generieren und verwenden und das Trust Bundle in den Cluster kopieren. Weitere Informationen finden Sie unter GDC-Trust-Bundles abrufen.
export REGISTRY=HARBOR_INSTANCE_URL
mkdir -p /etc/docker/certs.d/${REGISTRY} && echo $(kubectl get secret trust-store-global-root-ext -n platform -o \
jsonpath='{.data.ca\.crt}') | openssl base64 -A -d > \
/etc/docker/certs.d/${REGISTRY}/ca.crt
Ersetzen Sie HARBOR_INSTANCE_URL durch die URL Ihrer Harbor-Instanz. Beispiel: harbor-1.org-1.zone1.google.gdc.test.
Wenn die Konfiguration nicht erfolgreich ist, wird die folgende Fehlermeldung angezeigt:
Error response from daemon: Get "https://<HARBOR_INSTANCE_URL>": x509: certificate signed by unknown authority
Wiederholen Sie die Schritte, um dieses Problem zu beheben, und leiten Sie es gegebenenfalls an das GDC-Engineering-Team weiter.
Wenn Pods in einem Kubernetes-Cluster den Fehler x509: certificate signed by unknown
authority anzeigen, wenn sie Images aus einer Harbor-Registry-Instanz abrufen, lesen Sie den Abschnitt Zertifikatsfehler beim Abrufen von Images beheben.
Nächste Schritte
Nachdem Sie Ihren Docker-Client so konfiguriert haben, dass er der Harbor-Root-Zertifizierungsstelle vertraut, schließen Sie die Einrichtung der Verbindung ab, um die Registry zu verwenden: