Accéder au contenu principal Passer au contenu complémentaire

Configurer un registre Docker personnalisé pour les Routes et les services de données

Configurez un registre Docker interne ou externe pour les Routes et les services de données dans un environnement Dynamic Engine.

Par défaut, un service de registre Docker (docker-registry) est déployé dans votre infrastructure de Dynamic Engine pour stocker les images construites à partir des Routes et services de données.
  • Vous pouvez personnaliser la configuration du service de registre interne au cours du déploiement ou de la mise à niveau de votre instance de Dynamic Engine.
  • Vous pouvez également personnaliser la configuration de votre environnement de Dynamic Engine afin d'utiliser un registre externe privé qui vous appartient.

Avant de commencer

  • Les définitions des ressources personnalisées dynamic-engine-crd doivent avoir été installées à l'aide du chart Helm oci://ghcr.io/talend/helm/dynamic-engine-crd. Si ce n'est pas le cas, exécutez les commandes suivantes pour l'installation :
    1. Trouvez la version du chart à utiliser :
      • Exécutez la commande Helm suivante :
        helm show chart oci://ghcr.io/talend/helm/dynamic-engine-crd --version <engine_version>
      • Visualisez la version directement depuis Talend Management Console ou consultez le Dynamic Engine journal de modification de la version du graphique dans votre version de Dynamic Engine.
      • Utilisez un appel d'API pour l'endpoint de version de Dynamic Engine (en anglais).
    2. Exécutez la commande suivante pour installer le chart Helm dans une version donnée :
      helm install dynamic-engine-crd oci://ghcr.io/talend/helm/dynamic-engine-crd --version <helm_chart_version>
      Remplacez <helm_chart_version> par la version du chart supportée par votre version du Dynamic Engine.

      Si vous ne spécifiez pas la version, vous installez la dernière version disponible du chart dynamic-engine-crd.

Pourquoi et quand exécuter cette tâche

Le registre Docker interne est partagé à travers tous les environnements de Dynamic Engine et est déployé dans l'espace de noms qlik-dynamic-engine, avec les valeurs de configuration globales. Il doit donc être personnalisé avec le déploiement ou la mise à niveau de votre instance de Dynamic Engine, plutôt qu'avec un environnement de Dynamic Engine spécifique. Cependant, les registres Docker externes sont configurés par environnement.

Cette architecture vous permet d'implémenter différentes stratégies de registre pour différents environnements. Par exemple, vous pouvez configurer :

  • L'environnement de développement : Utilisez le registre interne partagé.
  • L'environnement de préparation (staging) : Utilisez un registre externe dédié.
  • L'environnement de production : Utilisez le même registre externe que pour l'environnement de préparation (staging).
Options de configuration du registre Docker
Type de registre Procédure de personnalisation
Registre interne Pour plus d'informations, consultez Configurer un registre Docker interne pour les Routes et les services de données.

Cet exemple indique comment configurer la mise à l'échelle automatique des pods pour assurer un déploiement fluide d'un grand nombre de Routes et services de données.

Registre externe Pour plus d'informations, consultez Se connecter à un registre Docker externe pour les Routes et les services de données.

Le Dynamic Engine se connecte à votre propre registre Docket et l'utilise, mais votre service de registre doit être configuré hors du Dynamic Engine. Le Dynamic Engine ne fournit pas de mécanisme pour configurer votre registre.

Configurer un registre Docker interne pour les Routes et les services de données

Personnalisez le registre Docker interne stockant les images pour les Routes et les services de données lors du déploiement ou de la mise à niveau de votre instance de Dynamic Engine.

Pourquoi et quand exécuter cette tâche

Dans l'exemple ci-dessous, activez la mise à l'échelle horizontale du pod sur le registre Docker interne et configurez une valeur personnalisée pour le nombre de réplicas à créer et le nombre maximal de réplicas. La mise à l'échelle horizontale du pod est une fonctionnalité Kubernetes qui ajuste automatiquement le nombre de pods en réponse à la demande. Un pod est un objet Kubernetes représentant un groupe d'un ou plusieurs conteneur·s.

Procédure

  1. Créez un fichier de valeurs personnalisées pour les paramètres de mise à l'échelle et des réplicas :
    cat <<EOF > $DYNAMIC_ENGINE_ID-custom-internal-registry.yaml
    configuration:
      dockerRegistry:
        replicaCount: 2
        autoscaling:
          enabled: true
          maxReplicas: 5
    EOF
  2. Appliquez ce fichier de valeurs personnalisées :
    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            

    Si vous mettez à niveau le moteur, utilisez la commande suivante :

    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

Que faire ensuite

Si ce n'est pas encore fait, déployez ou mettez à niveau l'environnement de Dynamic Engine attribué à cette instance de Dynamic Engine et appliquez les fichiers de valeurs par défaut ou personnalisées. Pour davantage d'exemples de personnalisation, consultez les sections associées dans ce guide.

Se connecter à un registre Docker externe pour les Routes et les services de données

Connectez-vous à un registre Docker externe privé pour stocker les images pour les Routes et les services de données dans un environnement de Dynamic Engine.

Avant de commencer

Assurez-vous que le registre est accessible via le protocole HTTPS.

Procédure

  1. Exécutez la commande suivante pour créer un fichier de valeurs personnalisées pour la connexion au registre externe.
    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         

    Cette commande crée un fichier de valeurs fournissant les identifiants pour la connexion au registre. Un secret est un objet Kubernetes permettant de stocker des informations sensibles.

    Si les identifiants ne sont pas requis, laissez les champs username (identifiant), password (mot de passe) et secretName vides.

  2. Exécutez la commande suivante pour installer ou mettre à niveau l'environnement de Dynamic Engine avec le fichier de valeurs personnalisées.
    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          

    Cette commande met à niveau ou installe l'environnement de Dynamic Engine, en fonction de l'installation existante.

  3. Validez le déploiement :
    • Dans l'espace de noms de l'environnement correspondant de Dynamic Engine, vérifiez les éléments suivants :
      • Le pod dpe-data-service-route-deployer est en cours d'exécution.
      • Les secrets my-specific-registry et dpe-data-service-route-deployer existent, si le registre requiert des identifiants, avec my-specific-registry contenant une valeur .dockerconfigjson représentant l'authentification au registre et dpe-data-service-route-deployer contenant une valeur REGISTRY_CREDENTIALS.
    • Après avoir déployé une Route ou un service de données, confirmez l'existence de l'image dans le registre en exécutant cette commande :
      docker pull myregistry.example.com/my-specific-registry/<artifact_name>:<artifact_version>

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.