Docker so konfigurieren, dass die Harbor-Stammzertifizierungsstelle vertrauenswürdig ist

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:

  1. 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.
  2. 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.

    1. Fügen Sie unter Linux den Nutzer hinzu:

        sudo usermod -a -G docker USER
      
    2. Für Windows:

        net localgroup docker-users DOMAIN\Upan>SER /add
      

      Ersetzen Sie USER durch 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: