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

Déploiement Kubectl

Appliquez les fichiers manifestes pour le déploiement de l'écosystème Dynamic Engine.

Cette méthode est celle de déploiement classique des services de Dynamic Engine. À la différence de Helm, Kubectl n'autorise pas les configurations personnalisées des déploiements.
Note InformationsConseil : À propos de Helm et Kubectl :
Deux options existent pour le déploiement de votre écosystème du Dynamic Engine.

La mise à niveau depuis des manifestes Kubernetes vers des charts Helm n'est pas supportée pour les services de Dynamic Engine déjà déployés.

Avant de commencer

Vous devez avoir attribué au moins un environnement de Dynamic Engine à votre moteur, sélectionné le type de déploiement Kubectl et téléchargé le fichier ZIP. Pour les instructions concernant cette procédure, consultez Attribuer un environnement à un Dynamic Engine.

Procédure

  1. Dézippez le fichier téléchargé.
  2. Dans votre terminal Kubernetes, exécutez les commandes suivantes dans l'ordre indiqué pour configurer l'instance de Dynamic Engine :
    1. kubectl apply -f custom-resource-definitions.yaml

      Ce fichier manifeste crée deux définitions personnalisées de ressources Kubernetes dans votre cluster : dynamicengines.apps.qlik.com pour les ressources des Dynamic Engines et dynamicengineenvs.apps.qlik.com pour les ressources d'environnements des Dynamic Engines.

    2. kubectl apply -f resources.yaml

      Ce fichier manifeste crée les ressources de Dynamic Engine pour enregistrer votre cluster, déployer votre Dynamic Engine et attribuer le moteur à son entité logique locale dans Talend Management Console. Ces ressources appartiennent à un type (kind) de DynamicEngine.

    3. Après la seconde exécution, exécutez la commande suivante afin de vérifier le déploiement :
      kubectl wait --for=condition=Ready pod -l 'app.qlik.com/owned-by' --timeout 10m -A 

      Cette commande vérifie la préparation (readiness) de tous les pods avec le libellé app.qlik.com/owned-by à travers tous les espaces de noms.

      Si le déploiement est réussi, une réponse similaire à la suivante est affichée :

      pod/dynamic-engine-operator-799bb96687-rfm2g condition met
                                 pod/dpe-data-service-route-deployer-74b7f566c-lrl99 condition met
                                 pod/dpe-di-job-deployer-5cff46b6-x5t85 condition met
                                 pod/dpe-di-job-restore-orphans-5f57f5f86f-d9vpb condition met
                                 pod/dpe-engine-config-manager-956d5d7b9-7krcn condition met
                                 pod/dpe-job-controller-66fd596588-7x5w5 condition met
                                 pod/dpe-log-collector-7dd9499c8-dnvrn condition met      

      Cette sortie confirme que tous les pods requis pour Dynamic Engine et son environnement sont prêts.

    Cela fait avec succès, le statut de l'entité logique du Dynamic Engine dans Talend Management Console devient Active.
    Dynamic Engine avec le statut Active.

    Si vous souhaitez connaître les éléments installés dans votre cluster Kubernetes, allez dans votre machine Kubernetes et exxécutez les commandes présentées dans cette documentation Kubernetes officielle.

  3. Exécutez la commande suivante pour configurer les environnements. Un seul environnement a été créé et attribué dans cet exemple.
    kubectl apply -f resources-<environment_id>.yaml
    Note InformationsConseil :

    Si le moteur est associé à plusieurs environnements, cet ID est nécessaire pour distinguer le bon fichier.

    Deux méthodes sont disponibles pour trouver l'ID de l'environnement :
    • Dans Talend Management Console, ouvrez la page des détails de l'environnement à supprimer. L'ID est visible dans l'URL. Par exemple, dans cette URL :
      https://app.eu.cloud.talend.com/tmc/environments/dynamic-engine-environments/66f2c0bb3e063d3518122259/overview
      le segment 66f2c0bb3e063d3518122259 est l'ID d'environnement.
    • Exécutez la commande :
      kubectl get dynamicengineenvs.qlik.com
      Elle retourne le nom de la ressource ou de l'espace de noms, ID compris. Par exemple, qlik-processing-env-66f2c0bb3e063d3518122259.
    Après l'exécution, exécutez la commande suivante afin de vérifier le déploiement :
    kubectl wait --for=condition=RUNNING=true --all dynamicengineenvs --timeout 300s
    Durant 300 secondes, cette commande recherche toutes les ressources de type DynamicEngineEnv. Si une réponse similaire à la réponse suivante s'affiche, cela confirme que l'environnement du moteur a bien été déployé :
    dynamicengineenvs.qlik.com/qlik-processing-env-66f2c0bb3e063d3518122259 condition met
    Dans cette réponse, le nom de la ressource monitorée est qlik-processing-env-664b0bbd6c6f5522732e055d. Le nom est également utilisé comme nom de l'espace de noms, regroupant tous les services associés à la ressource d'environnement de Dynamic Engine.
  4. Facultatif : Si vous n'avez pas obtenu la confirmation ci-dessus, le déploiement a rencontré une erreur ou plusieurs erreurs. Exécutez la commande suivante pour inspecter l'objet "serviceStatus" de la ressource d'environnement :
    kubectl get dynamicengineenvs qlik-processing-env-664b0bbd6c6f5522732e055d -o json | jq -r '.status'
    Dans cette commande, dynamicengineenvs représente le type (kind) de ressources personnalisées dédiées aux environnements de Dynamic Engine et, comme dans l'exemple précédent, qlik-processing-env-664b0bbd6c6f5522732e055d est le nom de la ressource et de l'espace de noms de l'environnement.
    • Le message suivant affiche un exemple d'erreur sur le service "di-job-deployer" de l'objet "serviceStatus". Son champ "jobErrorMessage" donne davantage de détails concernant l'erreur observée au cours du déploiement, indiquant que le chart helm attendu est introuvable.

      Certaines lignes ont été ignorées dans l'exemple suivant.

      {
                                 "conditions": [
                                 {
                                 "lastTransitionTime": "2024-05-30T13:05:25Z",
                                 "message": "Service is not deployed",
                                 "reason": "Deployment_not_found",
                                 "status": "True",
                                 "type": "NOT_DEPLOYED"
                                 }
                                 ],
                                 "serviceStatus": {
                                 ...
                                 "di-job-deployer": {
                                 "conditions": [
                                 ...
                                 {
                                 "lastTransitionTime": "2024-05-30T13:06:39Z",
                                 "message": "Service is in error",
                                 "reason": "Pod_failed",
                                 "status": "False",
                                 "type": "IN_ERROR"
                                 }
                                 ],
                                 "creationDate": "2024-05-30T13:05:25Z",
                                 "jobErrorMessage": "Error: release: not found\nUpgrading...\nupgrade 
                                 result: Release \"di-job-deployer-92d6e127-e070-4264-a9e8-00adbbbfbc03\" does not exist. 
                                 Installing it now.\nError: failed to download 
                                 ...
                                 \nError: failed to download 
                                 \"https://artifactory.datapwn.com/artifactory/tlnd-helm-ce-dev/dpe-di-job-deployer-2.0.0.tgz\
                                 "\nexit_code: 1\n",
                                 "jobStatus": "FAILED",
                                 "lastUpdateDate": "2024-05-30T13:01:52Z"
                                 },
                                 ...
                                 }
                                 }
                                 }
      Dans cette situation, contactez le Support pour une étude du fichier manifeste de l'environnement de Dynamic Engine. Une fois informé, désattribuez l'environnement et réattribuez-le pour générer un nouveau fichier manifeste.

Résultats

Cela fait, les services d'environnement de Dynamic Engine sont installés dans votre cluster et connectés au Dynamic Engine.

Dans Talend Management Console, le statut de cet environnement devient Ready (Prêt), confirmant qu'il est prêt à exécuter des tâches ou des plans.

Si l'implémentation du fichier manifeste échoue, ou si les services du Dynamic Engine sont dissociés du Dynamic Engine, le statut devient Not ready (Pas prêt).

Que faire ensuite

Comme le Dynamic Engine a bien été déployé dans votre cluster Kubernetes, connecté à Talend Management Console et associé à un environnement de Dynamic Engine, il est à présent prêt à exécuter des tâches ou des plans de Jobs, comme un moteur standard. Pour savoir comment ajouter la tâche à l'environnement du Dynamic Engine pour exécution, consultez Ajouter des tâches à un environnement de Dynamic Engine.

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.