# Konfigurieren einer benutzerdefinierten Docker-Registrierung für Datenservices und Routen

Konfigurieren Sie eine interne oder externe Docker-Registrierung für Datenservices und Routen in einer Dynamic Engine-Umgebung.

Standardmäßig wird ein Docker-Registrierungsdienst (docker-registry) in Ihrer Dynamic Engine-Infrastruktur implementiert, um Images zu speichern, die aus Datenservices und Routen erstellt wurden.

* Sie können die Einrichtung des internen Standard-Registrierungsdienstes während der Implementierung oder des Upgrades Ihrer Dynamic Engine-Instanz anpassen.
* Sie können auch die Einrichtung Ihrer Dynamic Engine-Umgebung anpassen, um eine eigene private externe Registrierung zu verwenden.

## Vorbereitungen

* Die benutzerdefinierten Ressourcendefinitionen dynamic-engine-crd müssen mit dem Helm-Chart oci://ghcr.io/talend/helm/dynamic-engine-crd installiert worden sein. Führen Sie andernfalls die folgenden Befehle für die Installation aus:
  1. Suchen Sie die zu verwendende Diagrammversion:

     * Führen Sie den folgenden Helm-Befehl aus:
       ```
       helm show chart oci://ghcr.io/talend/helm/dynamic-engine-crd --version <engine_version>
       ```
     * Sehen Sie die Version direkt über Talend Management Console ein oder suchen Sie im [Dynamic Engine Änderungs-Log](https://help.qlik.com/talend/en-US/dynamic-engine-changelog/Cloud/dynamic-engine-v0-21-0-release-changelog?tr=de-DE) nach der in Ihrer Dynamic Engine-Version enthaltenen Diagrammversion.
     * Verwenden Sie einen API-Aufruf an [den Dynamic Engine-Versionsendpunkt](https://talend.qlik.dev/apis/dynamic-engine/2021-03/#operation_return-all-supported-dynamic-engine-versions).

  2. Führen Sie den folgenden Befehl aus, um das Helm-Chart einer bestimmten Version zu installieren:

     ```
     helm install dynamic-engine-crd oci://ghcr.io/talend/helm/dynamic-engine-crd --version <helm_chart_version>
     ```

     Ersetzen Sie &lt;helm\_chart\_version&gt; durch die Chart-Version, die von Ihrer Dynamic Engine-Version unterstützt wird.

     Wenn die Version nicht angegeben wird, installieren Sie die neueste verfügbare dynamic-engine-crd-Diagrammversion.

## Warum und wann dieser Vorgang ausgeführt wird

Die interne Docker-Registrierung wird über alle Dynamic Engine-Umgebungen hinweg gemeinsam verwendet und wird im Namespace qlik-dynamic-engine mit globalen Konfigurationswerten implementiert. Daher muss sie mit der Implementierung oder dem Upgrade Ihrer Dynamic Engine-Instanz angepasst werden, nicht mit einer spezifischen Dynamic Engine-Umgebung. Externe Docker-Registrierungen werden aber auf Umgebungsbasis konfiguriert.

Anhand dieser Architektur können Sie unterschiedliche Registrierungsstrategien für verschiedene Umgebungen implementieren. Sie können zum Beispiel Folgendes konfigurieren:

* Entwicklungsumgebung: Verwenden Sie eine freigegebene interne Registrierung.
* Staging-Umgebung: Verwenden Sie eine dedizierte externe Registrierung.
* Produktionsumgebung: Verwenden Sie die gleiche externe Registrierung wie beim Staging.

Konfigurationsoptionen für die Docker-RegistrierungKonfigurationsoptionen für die Docker-Registrierung

| Registrierungstyp | Anpassungsverfahren |
| --- | --- |
| Interne Registrierung | Weitere Informationen finden Sie unter „[Konfigurieren einer internen Docker-Registrierung für Datenservices und Routen](https://help.qlik.com/talend/de-DE/dynamic-engine-configuration-guide/Cloud/configure-docker-registry#configure-internal-docker-registry "Passen Sie die interne Docker-Registrierung an, die Images für Datenservices und Routenservices speichert, wenn Sie Ihre Dynamic Engine-Instanz implementieren oder aktualisieren.")“.<br><br>In diesem Beispiel wird gezeigt, wie Sie Pod-Autoskalierung konfigurieren, um eine reibungslose Implementierung einer großen Anzahl Datenservices und Routen zu gewährleisten. |
| Externe Registrierung | Weitere Informationen finden Sie unter „[Herstellen einer Verbindung zu einer externen Docker-Registrierung für Datenservices und Routen](https://help.qlik.com/talend/de-DE/dynamic-engine-configuration-guide/Cloud/configure-docker-registry#configure-external-docker-registry "Stellen Sie eine Verbindung zu einer privaten externen Docker-Registrierung für Datenservices und Routen in einer Dynamic Engine-Umgebung her.")“.<br><br>Dynamic Engine stellt eine Verbindung zu Ihrer eigenen Docker-Registrierung her und verwendet diese, aber der Registrierungsdienst muss außerhalb von Dynamic Engine konfiguriert werden. Dynamic Engine bietet keinen Mechanismus zum Konfigurieren der Registrierung. |

## Konfigurieren einer internen Docker-Registrierung für Datenservices und Routen

Passen Sie die interne Docker-Registrierung an, die Images für Datenservices und Routenservices speichert, wenn Sie Ihre Dynamic Engine-Instanz implementieren oder aktualisieren.

### Warum und wann dieser Vorgang ausgeführt wird

Im Beispiel unten aktivieren Sie HPA in der internen Docker-Registrierung und legen einen benutzerdefinierten Wert für die Anzahl der zu erstellenden Replikate und die maximale Anzahl an Replikaten fest. HPA steht für horizontale Pod-Autoskalierung, eine Kubernetes-Funktion, mit der die Anzahl der Pods als Reaktion auf die Nachfrage automatisch angepasst wird. Ein Pod ist ein Kubernetes-Objekt, das eine Gruppe von einem oder mehreren Containern darstellt.

### Prozedur

1. Erstellen Sie eine benutzerdefinierte Wertedatei für die Autoskalierungs- und Replikateinstellungen:
   ```
   cat <<EOF > $DYNAMIC_ENGINE_ID-custom-internal-registry.yaml
   configuration:
     dockerRegistry:
       replicaCount: 2
       autoscaling:
         enabled: true
         maxReplicas: 5
   EOF
   ```
2. Wenden Sie diese benutzerdefinierte Wertedatei an:
   ```
   helm install -i dynamic-engine-$DYNAMIC_ENGINE_ID -f $DYNAMIC_ENGINE_ID-values.yaml \
   -f $DYNAMIC_ENGINE_ID-custom-internal-registry.yaml \
   oci://ghcr.io/talend/helm/dynamic-engine \
   --version $DYNAMIC_ENGINE_VERSION            
   ```

   Wenn Sie die Engine aktualisieren, verwenden Sie folgenden Befehl:
   ```
   helm upgrade -i dynamic-engine-$DYNAMIC_ENGINE_ID -f $DYNAMIC_ENGINE_ID-values.yaml \
   -f $DYNAMIC_ENGINE_ID-custom-internal-registry.yaml \
   oci://ghcr.io/talend/helm/dynamic-engine \
   --version $DYNAMIC_ENGINE_VERSION
   ```

### Nächste Maßnahme

Falls noch nicht geschehen, implementieren oder aktualisieren Sie die Dynamic Engine-Umgebung, die dieser Dynamic Engine-Instanz zugewiesen ist, und wenden Sie die standardmäßige bzw. benutzerdefinierte Wertedatei entsprechend an. Weitere Anpassungsfälle finden Sie in den betreffenden Abschnitten in diesem Handbuch.

## Herstellen einer Verbindung zu einer externen Docker-Registrierung für Datenservices und Routen

Stellen Sie eine Verbindung zu einer privaten externen Docker-Registrierung für Datenservices und Routen in einer Dynamic Engine-Umgebung her.

### Vorbereitungen

Vergewissern Sie sich, dass die Registrierung über HTTPS zugänglich ist.

### Prozedur

1. Führen Sie den folgenden Befehl aus, um eine benutzerdefinierte Wertedatei für die Verbindung mit der externen Registrierung zu erstellen.
   ```
   cat <<EOF > custom-routes-registry-values.yaml
   configuration:
     registry:
       url: myregistry.example.com
       path: my-specific-registry
       username: foo
       password: bar
       secretName: my-specific-registry
   EOF         
   ```

   Mit diesem Befehl wird eine Wertedatei erstellt, um die Anmeldeinformationen für die Registrierungsverbindung anzugeben. Ein Secret ist ein Kubernetes-Objekt, in dem sensible Informationen gespeichert werden.

   Wenn keine Anmeldeinformationen erforderlich sind, lassen Sie die Felder username, password und secretName leer.
2. Führen Sie den folgenden Befehl aus, um die Dynamic Engine-Umgebung mit der benutzerdefinierten Wertedatei zu installieren oder zu aktualisieren.
   ```
   helm upgrade --install dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
   -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml \
   -f custom-routes-registry-values.yaml \
   oci://ghcr.io/talend/helm/dynamic-engine-environment \
   --version $DYNAMIC_ENGINE_VERSION          
   ```

   Mit diesem Befehl wird die Dynamic Engine-Umgebung aktualisiert oder installiert, je nachdem, ob sie zuvor bereits installiert war.
3. Validieren Sie die Implementierung:
   * Prüfen Sie im entsprechenden Namespace der Dynamic Engine-Umgebung Folgendes:
     * Der Pod dpe-data-service-route-deployer wird ausgeführt.
     * Wenn für die Registrierung Anmeldeinformationen erforderlich sind, sind die Secrets my-specific-registry und dpe-data-service-route-deployer vorhanden, wobei my-specific-registry einen Wert für .dockerconfigjson enthält, der die Registrierungsauthentifizierung darstellt, sowie dpe-data-service-route-deployer mit einem Wert für REGISTRY\_CREDENTIALS.
   * Nachdem Sie eine Route oder einen Datenservice implementiert haben, bestätigen Sie, dass das Image in der Registrierung vorhanden ist, indem Sie den folgenden Befehl ausführen:
     ```
     docker pull myregistry.example.com/my-specific-registry/<artifact_name>:<artifact_version>
     ```