Création d'une instance de service pour Data Virtualization avec la cpd-cli service-instance create commande

Après l'installation Data Virtualization, vous devez créer au moins une instance Data Virtualization de service. Chaque instance de service doit se trouver dans un projet Red Hat® OpenShift® Container Platform différent. Vous pouvez créer une instance de service dans le projet operands ou dans un projet lié au projet operands. Si vous êtes un IBM® Software Hub utilisateur, vous pouvez utiliser la cpd-cli service-instance create commande pour créer un script du processus de création d'instances de service.

Qui doit accomplir cette tâche?
Pour créer une instance de service à l'aide de cpd-cli, vous devez disposer de l'autorisation Créer des instances de service (can_provision) dans IBM Software Hub.
Quand devez-vous terminer cette tâche?
N'effectuez cette tâche que si vous souhaitez créer une instance de service à partir du cpd-cli à l'aide de la cpd-cli service-instance create commande.
Méthodes alternatives pour créer une instance de service

Informations nécessaires à l'exécution de cette tâche

Vérifiez les informations suivantes avant de créer une instance de service pour Data Virtualization :

Version requise

Tous les composants associés à une instance de IBM Software Hub doivent être installés ou créés lors de la même version. Par exemple, si Data Virtualization est installé en version 5.3.1, vous devez créer l'instance de service en version 5.3.1.

Important : Data Virtualization utilise un numéro de version différent de IBM Software Hub. Cette rubrique comprend un tableau qui indique la Data Virtualization version pour chaque actualisation de IBM Software Hub. Utilisez ce tableau pour trouver la version correcte en fonction de la version de IBM Software Hub qui est installée.
Variables d'environnement

Les commandes de cette tâche utilisent des variables d'environnement afin que vous puissiez les exécuter exactement telles qu'elles sont écrites.

Avant de commencer

Cette tâche suppose que les conditions préalables suivantes sont remplies :

Prérequis Où trouver des informations supplémentaires
Data Virtualization est installé. Si cette tâche n'est pas terminée, consultez la section Installation Data Virtualization.
L'interface cpd-cli de ligne de commande est installée sur le poste de travail à partir duquel vous allez créer l'instance de service. Si cette tâche n'est pas terminée, consultez la section Configuration d'un poste de travail client.
Vous avez créé un IBM Software Hub profil utilisateur sur le poste de travail à partir duquel vous allez créer l'instance de service.

Le profil doit être associé à un utilisateur disposant de l'autorisation Créer des instances de service (can_provision) dans IBM Software Hub.

Si cette tâche n'est pas terminée, consultez Création d'un profil pour utiliser les commandes de gestion cpd-cli.

Procédure

Effectuez les tâches suivantes pour créer une instance de service :

  1. Que faire ensuite?

Création d'une instance de service

Pour créer une instance de service :

  1. Accédez au répertoire de votre poste de travail dans lequel vous souhaitez créer le fichier JSON qui définit la charge utile de l'instance de service.
  2. Définissez les variables d'environnement utilisées pour remplir la charge utile JSON pour l'instance de service :
    1. Définissez la variable INSTANCE_SHORT_NAME d'environnement sur le nom unique que vous souhaitez utiliser pour identifier l'instance de service :
      export INSTANCE_SHORT_NAME="<display-name>"

      Le nom court est un string et peut contenir des caractères alphanumériques (a-z, A-Z, 0-9), des tirets (-) et des traits de soulignement (_).

    2. Définissez le INSTANCE_PROJECT sur le projet dans lequel vous souhaitez créer l'instance de service :
      Créer l'instance de service dans le projet operands
      export INSTANCE_PROJECT=${PROJECT_CPD_INST_OPERANDS}

      La commande utilise la PROJECT_CPD_INST_OPERANDS variable, qui est déjà définie dans votre script de variables d'environnement d'installation.


      Créer l'instance de service dans un projet lié
      Important : si plusieurs projets liés sont associés à cette instance de IBM Software Hub, assurez-vous que la variable ${PROJECT_CPD_INSTANCE_TETHERED} d'environnement est définie sur le nom de projet correct avant d'exécuter la export commande :
      echo $PROJECT_CPD_INSTANCE_TETHERED
      export INSTANCE_PROJECT=${PROJECT_CPD_INSTANCE_TETHERED}

      Rappel : vous ne pouvez créer qu'une seule instance de service dans chaque projet.
    3. Définissez la variable INSTANCE_NAME d'environnement :
      export INSTANCE_NAME="watson-query-${INSTANCE_PROJECT}-${INSTANCE_SHORT_NAME}"
    4. Définissez la variable INSTANCE_DESCRIPTION d'environnement sur la description que vous souhaitez utiliser pour l'instance de service :
      export INSTANCE_DESCRIPTION="<description>"

      Cette description s'affiche sur la page Instances du client IBM Software Hub Web.

      La description est un string et peut contenir des caractères alphanumériques, des espaces, des tirets, des traits de soulignement et des points. Veillez à mettre le nom d'affichage entre guillemets, comme indiqué dans la commande export précédente.

    5. Définissez la variable INSTANCE_VERSION d'environnement sur la version qui correspond à la version de IBM Software Hub sur votre cluster :
      export INSTANCE_VERSION=<version>

      Utilisez le tableau suivant pour déterminer la valeur appropriée :

      IBM Software Hubversion Version d'instance de service
      5.3.1 3.3.1
      5.3.0 3.3.0
    6. Définissez la variable INSTANCE_AUTOSCALING d'environnement base selon que vous souhaitez que l'instance s'adapte automatiquement en augmentant ou en diminuant le nombre de pods en fonction de la consommation du processeur ou de la mémoire.
      Mise à l'échelle automatique de l'instance
      Si vous souhaitez mettre à l'échelle automatiquement l'instance de service, exécutez :
      export INSTANCE_AUTOSCALING=true
      Important : si vous dimensionnez automatiquement le service, vous devez utiliser une taille prédéfinie pour la variable INSTANCE_PREDEFINED_SIZE d'environnement.
      Utilisation exclusive des ressources spécifiées
      Si vous ne souhaitez pas que l'instance de service s'adapte automatiquement, exécutez :
      export INSTANCE_AUTOSCALING=false
    7. Définissez la variable d'environnement INSTANCE_PREDEFINED_SIZE.
      Utilisation des paramètres personnalisés
      Si vous souhaitez utiliser des paramètres personnalisés plutôt qu'une taille prédéfinie, exécutez :
      export INSTANCE_PREDEFINED_SIZE=""
      Utilisation d'une taille prédéfinie
      Si vous souhaitez utiliser une taille prédéfinie pour l'instance, exécutez :
      export INSTANCE_PREDEFINED_SIZE=<size>

      Les valeurs valides sont :

      • extrasmall
      • small
      • medium
      • large

      Pour plus d'informations sur les ressources associées à chaque taille, consultez le guide PDF sur la mise à l'échelle des composants, que vous pouvez télécharger à partir du registre intitulé « IBM ».

      Important : vous devez définir les variables d'environnement INSTANCE_CPUINSTANCE_MEMORY et même si vous souhaitez utiliser une taille prédéfinie. Si vous ne spécifiez pas de valeur pour ces variables d'environnement, le provisionnement de l'instance de service échouera.
    8. Définissez la variable INSTANCE_CPU d'environnement sur la quantité de CPU à allouer à l'instance de service :
      export INSTANCE_CPU=<integer>

      Spécifiez une valeur comprise entre 4 et 64.

      Conseil : si vous utilisez une taille d'instance prédéfinie, définissez ce paramètre sur 4.

      Dimensionnez l'instance en fonction de votre charge de travail. Pour plus d'informations sur le nombre de CPU à allouer à l'instance de service, consultez le guide PDF sur la mise à l'échelle des composants, que vous pouvez télécharger à partir du IBM Entitled Registry.

    9. Définissez la variable INSTANCE_MEMORY d'environnement sur la quantité de mémoire à allouer à l'instance de service :
      export INSTANCE_MEMORY=<integer>

      Spécifiez une valeur comprise entre 16 Gio et 512 Gio. Spécifiez la valeur sous forme d'entier. Omettre l'unité de mesure.

      Conseil : si vous utilisez une taille d'instance prédéfinie, définissez ce paramètre sur 16.

      Dimensionnez l'instance en fonction de votre charge de travail. Pour plus d'informations sur la quantité de mémoire à allouer à l'instance de service, consultez le guide PDF sur la mise à l'échelle des composants, que vous pouvez télécharger à partir du IBM Entitled Registry.

    10. Définissez la variable INSTANCE_WORKERS d'environnement sur le nombre de nœuds de travail sur lesquels exécuter l'instance de service :
      export INSTANCE_WORKERS=<integer>
      Le nombre maximal de travailleurs que vous pouvez spécifier dépend de la Db2U configuration pour fonctionner avec des privilèges élevés :
      • Si Db2U est configuré pour s'exécuter avec des privilèges limités, vous pouvez spécifier une valeur comprise entre 1 et le nombre total de nœuds de travail sur le cluster.
      • Si Db2U est configuré pour s'exécuter avec des privilèges élevés, vous pouvez spécifier une valeur comprise entre 1 et 999.

      La plupart des charges de travail peuvent être exécutées sur 1 à 3 nœuds. Pour plus d'informations sur le nombre de nœuds recommandé en fonction de votre charge de travail, consultez le guide PDF sur la mise à l'échelle des composants, que vous pouvez télécharger à partir du IBM Entitled Registry.

    11. Définissez la variable PV_SIZE d'environnement sur la quantité de stockage que vous souhaitez allouer à l'instance de service :
      export PV_SIZE=<integer>

      Spécifiez une valeur comprise entre 50 Gio et 10240 Gio. La recommandation par défaut est de 50 Gi. Spécifiez la valeur sous forme d'entier. Omettre l'unité de mesure.

      Dimensionnez le volume en fonction de la taille des requêtes que vous prévoyez d'exécuter. Pour plus d'informations, consultez le guide PDF sur la mise à l'échelle des composants, que vous pouvez télécharger à partir du IBM Entitled Registry.

    12. Définissez la variable PV_SIZE_CACHE d'environnement sur la quantité de stockage que vous souhaitez allouer à la mise en cache pour l'instance de service :
      export PV_SIZE_CACHE=<integer>

      Spécifiez une valeur comprise entre 100 Gio et 10240 Gio. La recommandation par défaut est de 100 Gi. Spécifiez la valeur sous forme d'entier. Omettre l'unité de mesure.

      Dimensionnez le volume en fonction de la taille du cache de données. Pour plus d'informations, consultez le guide PDF sur la mise à l'échelle des composants, que vous pouvez télécharger à partir du IBM Entitled Registry.

    13. Définissez la variable PV_SIZE_AUDITING d'environnement sur la quantité de stockage que vous souhaitez allouer aux journaux d'audit pour l'instance de service :
      export PV_SIZE_AUDITING=<integer>

      Spécifiez une valeur comprise entre 1 Gio et 10240 Gio. La recommandation par défaut est de 30 Gi. Spécifiez la valeur sous forme d'entier. Omettre l'unité de mesure.

      Dimensionnez le volume en fonction du nombre d'événements auditables enregistrés. Pour plus d'informations, consultez le guide PDF sur la mise à l'échelle des composants, que vous pouvez télécharger à partir du IBM Entitled Registry.

  3. Créez le data-virtualization-instance.json fichier de charge utile.

    La commande que vous devez exécuter dépend du type de stockage utilisé dans votre cluster.


    Stockage Portworx
    cat << EOF > ./data-virtualization-instance.json
    {
        "addon_type": "dv",
        "display_name": "${INSTANCE_NAME}",
        "addon_version": "${INSTANCE_VERSION}",
        "namespace": "${INSTANCE_PROJECT}",
        "create_arguments": {
            "description": "${INSTANCE_DESCRIPTION}",
            "metaData": {},
            "parameters" : {
                "autoscaling": ${INSTANCE_AUTOSCALING},
                "tshirtsize": "${INSTANCE_PREDEFINED_SIZE}",
                "resources.dv.requests.cpu": "${INSTANCE_CPU}",
                "resources.dv.requests.memory": "${INSTANCE_MEMORY}Gi",
                "image.pullPolicy": "IfNotPresent",
                "workerCount": "${INSTANCE_WORKERS}",
                "persistence.storageClass": "portworx-db2-rwo-sc",
                "persistence.size": "${PV_SIZE}Gi",
                "persistence.cachingpv.storageClass": "portworx-db2-rwx-sc",
                "persistence.cachingpv.size": "${PV_SIZE_CACHE}Gi",
                "persistence.auditpv.storageClass": "portworx-db2-rwx-sc",
                "persistence.auditpv.size": "${PV_SIZE_AUDITING}Gi"
            },
        "resources": {
            "cpu": "$(( (${INSTANCE_WORKERS} + 1) * ${INSTANCE_CPU} ))",
            "memory": "$(( (${INSTANCE_WORKERS} + 1) * ${INSTANCE_MEMORY} ))"
        },
        "transientFields": {}
      }
    }
    EOF

    Stockage élastique Amazon
    cat << EOF > ./data-virtualization-instance.json
    {
        "addon_type": "dv",
        "display_name": "${INSTANCE_NAME}",
        "addon_version": "${INSTANCE_VERSION}",
        "namespace": "${INSTANCE_PROJECT}",
        "create_arguments": {
            "description": "${INSTANCE_DESCRIPTION}",
            "metaData": {},
            "parameters" : {
                "autoscaling": ${INSTANCE_AUTOSCALING},
                "tshirtsize": "${INSTANCE_PREDEFINED_SIZE}",
                "resources.dv.requests.cpu": "${INSTANCE_CPU}",
                "resources.dv.requests.memory": "${INSTANCE_MEMORY}Gi",
                "image.pullPolicy": "IfNotPresent",
                "workerCount": "${INSTANCE_WORKERS}",
                "persistence.storageClass": "${STG_CLASS_FILE}",
                "persistence.size": "${PV_SIZE}Gi",
                "persistence.cachingpv.storageClass": "${STG_CLASS_FILE}",
                "persistence.cachingpv.size": "${PV_SIZE_CACHE}Gi",
                "persistence.auditpv.storageClass": "${STG_CLASS_FILE}",
                "persistence.auditpv.size": "${PV_SIZE_AUDITING}Gi"
            },
        "resources": {
            "cpu": "$(( (${INSTANCE_WORKERS} + 1) * ${INSTANCE_CPU} ))",
            "memory": "$(( (${INSTANCE_WORKERS} + 1) * ${INSTANCE_MEMORY} ))"
        },
        "transientFields": {}
      }
    }
    EOF
    Les variables d'environnement suivantes utilisent les valeurs déjà définies dans votre script de variables d'environnement d'installation :
    • ${STG_CLASS_FILE}

    Tout autre stockage
    cat << EOF > ./data-virtualization-instance.json
    {
        "addon_type": "dv",
        "display_name": "${INSTANCE_NAME}",
        "addon_version": "${INSTANCE_VERSION}",
        "namespace": "${INSTANCE_PROJECT}",
        "create_arguments": {
            "description": "${INSTANCE_DESCRIPTION}",
            "metaData": {},
            "parameters" : {
                "autoscaling": ${INSTANCE_AUTOSCALING},
                "tshirtsize": "${INSTANCE_PREDEFINED_SIZE}",
                "resources.dv.requests.cpu": "${INSTANCE_CPU}",
                "resources.dv.requests.memory": "${INSTANCE_MEMORY}Gi",
                "image.pullPolicy": "IfNotPresent",
                "workerCount": "${INSTANCE_WORKERS}",
                "persistence.storageClass": "${STG_CLASS_BLOCK}",
                "persistence.size": "${PV_SIZE}Gi",
                "persistence.cachingpv.storageClass": "${STG_CLASS_BLOCK}",
                "persistence.cachingpv.size": "${PV_SIZE_CACHE}Gi",
                "persistence.auditpv.storageClass": "${STG_CLASS_FILE}",
                "persistence.auditpv.size": "${PV_SIZE_AUDITING}Gi"
            },
        "resources": {
            "cpu": "$(( (${INSTANCE_WORKERS} + 1) * ${INSTANCE_CPU} ))",
            "memory": "$(( (${INSTANCE_WORKERS} + 1) * ${INSTANCE_MEMORY} ))"
        },
        "transientFields": {}
      }
    }
    EOF
    Les variables d'environnement suivantes utilisent les valeurs déjà définies dans votre script de variables d'environnement d'installation :
    • ${STG_CLASS_BLOCK}
    • ${STG_CLASS_FILE}

  4. Définissez la variable PAYLOAD_FILE d'environnement sur le nom complet du fichier de charge utile JSON sur votre poste de travail :
    export PAYLOAD_FILE=<fully-qualified-JSON-file-name>
  5. Créez l'instance de service à partir du fichier de charge utile :
    cpd-cli service-instance create \
    --profile=${CPD_PROFILE_NAME} \
    --from-source=${PAYLOAD_FILE}
Remarque : le c-db2u-dv-dvcaching pod reste dans l'état « 0/1 Init » pendant tout le processus Data Virtualization de provisionnement d'instance. Le pod passe à l'état « 1/1 Running » une fois le processus terminé.

Vérification de la création de l'instance de service

Pour vérifier que l'instance de service a bien été créée, exécutez la commande suivante :

cpd-cli service-instance status ${INSTANCE_NAME} \
--profile=${CPD_PROFILE_NAME} \
--output=json
  • Si la commande renvoie PROVISIONED, l'instance de service a été créée avec succès.
  • Si la commande renvoie PROVISION_IN_PROGRESS, attendez quelques minutes et relancez la commande.
  • Si la commande renvoie FAILED, consultez les journaux des pods zen-watcher et pour trouver zen-core-api les causes possibles.

Etape suivante

  1. Pour vous connecter au Data Virtualization service, utilisez le JDBCURL fourni dans la page Configurer la connexion pour le service. De plus, si vous possédez un équilibreur de charge, ouvrez le port dans votre équilibreur de charge et dans votre pare-feu. Pour plus d'informations, consultez la section Configuration des exigences réseau pour l' Data Virtualization.
  2. Facultatif : configurez des nœuds de OpenShift travail dédiés.
  3. Effectuez les tâches d'administration post-installation pour configurer les instances de service.
  4. Attribuez le rôle d'utilisateur Data Virtualization administrateur pour la configuration du service. Lorsque vous provisionnez le Data Virtualization service, le rôle Data Virtualization Admin vous est automatiquement attribué. Après avoir provisionné le service, vous devez attribuer le rôle Data Virtualization Admin à au moins un autre utilisateur afin de configurer les fonctionnalités du Data Virtualization service. Vous pouvez également accomplir ces tâches vous-même.
Vous pouvez désormais utiliser le Data Virtualization service. Pour plus d'informations, consultez la section « Pour commencer avec Data Virtualization ».