Déploiement d'un PoP synthétique auto-hébergé avec popctl

Vous pouvez déployer un point de présence Synthetic auto-hébergé ( PoP ) à l'aide de l'outil popctl en ligne de commande.

Pour déployer un PoP synthétique auto-hébergé en ligne, suivez les étapes suivantes :

  1. Ajoutez le dépôt Instana.

  2. Installez l'outil de ligne de commande popctl.

    Si l'outil de ligne de commande popctl est déjà installé, mettez à jour l'outil de ligne de commande popctl.

  3. Créez un cluster.

  4. Installer le PoP synthétique.

  5. Installez l'agent d' Instana.

Pour déployer un PoP synthétique auto-hébergé dans un environnement à encombrement aérien, procédez comme suit :

  1. Ajoutez le dépôt Instana.

  2. Installez l'outil de ligne de commande popctl.

    Si l'outil de ligne de commande popctl est déjà installé, mettez à jour l'outil de ligne de commande popctl.

  3. Créer un paquet d'installation à étanchéité à l'air.

  4. Transférer le paquet d'installation à air comprimé.

  5. Créez un cluster.

  6. Installer le PoP synthétique.

  7. Installez l'agent d' Instana.

Ajouter le dépôt Instana

Ajoutez le référentiel Instana au sources.list fichier de votre serveur afin que celui-ci puisse accéder au paquet d'installation.

Dans un environnement à air comprimé, effectuez la procédure sur l'hôte bastion.

Pour ajouter le référentiel Instana, effectuez l'une des opérations suivantes en tant qu'utilisateur root sur votre serveur. Dans la commande, remplacez <download_key> par votre clé de téléchargement.

  • Pour « Red Hat® Enterprise Linux® » ou « CentOS Stream », exécutez les commandes suivantes :

    export DOWNLOAD_KEY=<download_key>
    
    cat << EOF > /etc/yum.repos.d/Instana-Product.repo
    [instana-product]
    name=Instana-Product
    baseurl=https://_:$DOWNLOAD_KEY@artifact-public.instana.io/artifactory/rel-rpm-public-virtual/
    enabled=1
    gpgcheck=0
    gpgkey=https://_:$DOWNLOAD_KEY@artifact-public.instana.io/artifactory/api/security/keypair/public/repositories/rel-rpm-public-virtual
    repo_gpgcheck=1
    EOF
     
  • Pour Ubuntu ou Debian, exécutez les commandes suivantes :

    export DOWNLOAD_KEY=<download_key>
    
    echo 'deb [signed-by=/usr/share/keyrings/instana-archive-keyring.gpg] https://artifact-public.instana.io/artifactory/rel-debian-public-virtual generic main' > /etc/apt/sources.list.d/instana-product.list
    
    cat << EOF > /etc/apt/auth.conf
    machine artifact-public.instana.io
       login _
       password $DOWNLOAD_KEY
    EOF
    
    wget -nv -O- --user=_ --password="$DOWNLOAD_KEY" https://artifact-public.instana.io/artifactory/api/security/keypair/public/repositories/rel-debian-public-virtual | gpg --dearmor > /usr/share/keyrings/instana-archive-keyring.gpg
     
  • Pour SUSE Linux Enterprise Server (SLES), exécutez les commandes suivantes :

    export DOWNLOAD_KEY=<download_key>
    cat << EOF > /etc/zypp/credentials.d/instana_auth
    username=_
    password=$DOWNLOAD_KEY
    EOF
    cat << EOF > /etc/zypp/repos.d/Instana-Product.repo
    [instana-product]
    name=Instana-Product
    baseurl=https://artifact-public.instana.io/artifactory/rel-rpm-public-virtual/?credentials=instana_auth
    enabled=1
    gpgcheck=0
    gpgkey=https://artifact-public.instana.io/artifactory/api/security/keypair/public/repositories/rel-rpm-public-virtual?credentials=instana_auth
    repo_gpgcheck=1
    EOF
     

Installation de l'outil de ligne de commande popctl

Pour installer l'outil popctl en ligne de commande, suivez l'une des procédures suivantes en fonction de votre système d'exploitation.

Dans un environnement à air comprimé, effectuez la procédure sur l'hôte bastion.

Installation de l'outil popctl en ligne de commande sur Red Hat Enterprise Linux ou CentOS Stream

Pour installer l'outil popctl en ligne de commande sur un hôte Red Hat Enterprise Linux ou CentOS Stream, procédez comme suit :

  1. Rafraîchissez vos dépôts 'yum

    yum clean expire-cache -y
     
  2. Mettez à jour les fichiers d'index des paquets sur votre hôte :

    yum update -y
     
  3. Installer popctl :

    yum install -y popctl
     
  4. Si le plug-in versionlock n'est pas installé sur votre hôte, installez-le :

    yum install python3-dnf-plugin-versionlock
     
  5. Évitez les mises à jour automatiques, définissez la version popctl du paquet :

    yum versionlock add popctl
     

Installation de l'outil en ligne de commande popctl sur Ubuntu ou Debian

Pour installer l'outil popctl en ligne de commande sur un hôte Ubuntu ou Debian, procédez comme suit :

  1. Mettez à jour les fichiers d'index des paquets sur votre hôte :

    apt update -y
     
  2. Installer popctl :

    apt install -y popctl
     
  3. Évitez les mises à jour automatiques, définissez la version popctl du paquet :

    apt-mark hold popctl
     

Installation de l'outil de ligne de commande popctl sur SLES

Pour installer l'outil popctl en ligne de commande sur un hôte SLES, procédez comme suit :

  1. Rafraîchir et mettre à jour les fichiers d'index des paquets sur votre hôte :

    zypper refresh
     

    Lorsque l'invite Do you want to reject the key, trust temporarily, or trust always? [r/t/a/?] (r): s'affiche, entrez a pour définir la confiance en permanence.

  2. Installer popctl :

    zypper install -y popctl
     

Mise à jour de l'outil de ligne de commande popctl

Pour mettre à jour l'outil popctl en ligne de commande, suivez l'une des procédures suivantes en fonction de votre système d'exploitation :

  • Pour « Red Hat Enterprise Linux » ou « CentOS Stream », exécutez la commande suivante :

    yum update popctl
     
  • Pour Ubuntu ou Debian, exécutez la commande suivante :

    apt update && apt install --only-upgrade popctl
     
  • Pour SLES, exécutez la commande suivante :

    zypper refresh && zypper update popctl
     

Une fois l'outil installé, il est automatiquement ajouté à votre " $PATH. Vous pouvez exécuter ces popctl commandes depuis n'importe quel répertoire.

Pour vérifier la popctl version :

popctl --version
 

Pour vérifier l'utilisation de popctl :

popctl --help
 

Pour obtenir de l'aide pour une commande spécifique :

popctl help [command]
 

Création d'un paquet d'installation sous vide d'air

Remarque : dans un environnement isolé, vous devez créer un package d'installation sur votre hôte bastion, le transférer vers l'hôte situé dans l'environnement isolé, puis utiliser ce package pour procéder à l'installation. L'installation en mode « air-gapped » n'est prise en charge que sur les clusters K3s à nœud unique. N'installez pas l'agent PoP ou Instana sur d'autres plateformes telles que Red Hat OpenShift, Microk8s et Minikube.

Pour créer un paquet d'installation sur votre hôte bastion, suivez les étapes suivantes :

  1. Sur votre hôte Bastion, assurez-vous d'avoir effectué l'installation popctl conformément aux instructions de la section « Installation de l'outil en ligne de commande popctl ».

  2. Créer l'emballage à air comprimé :

    popctl air-gapped package
     

    Par défaut, le paquet est créé dans le répertoire courant.

  3. Saisissez la clé de téléchargement pour continuer :

    ? Enter the download key or an official agent key: **********************
     

    Si la clé que vous avez saisie est valide, le programme d'installation commence à télécharger les artefacts et crée le paquet air-gapped. Le message suivant peut apparaître :

    ⠋ 1/6 Packaging popctl artifacts [1/1]  [0s] ✓
    ⠋ 2/6 Packaging BuildMeta artifacts [1/1]  [0s] ✓
    ⠧ 3/6 Packaging Cluster artifacts [2/2]  [0s] ✓
    ⠼ 4/6 Packaging Helm artifacts [2/2]  [1m5s] ✓
    ⠙ 5/6 Packaging Registry (linux/amd64) artifacts [6/6]  [4s] ✓
    ⠼ 6/6 Packaging Agent (linux/amd64) artifacts [2/2]  [2s] ✓
    ⠸ Archiving air-gapped package  [5s] ✓
     

En fonction des conditions du réseau, la création du paquet à air comprimé peut prendre plusieurs minutes.

Lorsque le paquet est prêt, le message suivant s'affiche :

------------------------------------------
Air-gapped package successfully exported!

File: synthetic-pop-airgapped.tar.gz
 

Transfert du paquet d'installation à air comprimé

Pour transférer le paquet air-gapped de l'hôte bastion vers l'hôte de votre environnement air-gapped :

  1. Extrayez le paquet air-gapped et copiez le fichier popctl dans le répertoire /usr/local/bin de votre hôte :

     tar -xzf </path/to/synthetic-pop-airgapped.tar.gz> -C /usr/local/bin --strip-components 1 airgapped/popctl
     
  2. Importer le paquet muni d'un bouchon d'air :

    popctl air-gapped import -f </path/to/synthetic-pop-airgapped.tar.gz>
     

Sécurité et comportement du réseau dans les environnements isolés physiquement

Vous pouvez utiliser les points de lecture synthétiques ( PoP ) dans des environnements isolés physiquement afin de prendre en charge les environnements soumis à des exigences strictes en matière de sécurité réseau et de conformité.

Comportement du réseau sortant

L' PoP e synthétique n'établit pas de connexions sortantes vers l'Internet public lorsque vous la configurez avec un backend Instana auto-hébergé ou sur site. L' PoP e se connecte uniquement aux points d'accès réseau que vous configurez explicitement.

Comportement en matière de télémétrie et de collecte de données

L' PoP e synthétique ne contient aucune fonctionnalité de télémétrie ni de « phone home » intégrée. L'application « PoP » n'envoie pas de données d'utilisation, de diagnostics ou de statistiques à des services d' IBM s externes. L' PoP e ne procède pas à la vérification des antécédents des terminaux IBM.

Mécanisme de mise à jour

L' PoP e de synthèse ne prend pas en charge les mises à jour automatiques. Vous devez effectuer toutes les mises à jour manuellement. Pour mettre à jour l' PoP,, remplacez l'image du conteneur par une nouvelle version que vous fournissez. L' PoP e ne télécharge pas automatiquement les mises à jour ni les correctifs.

Champ d'application des communications réseau

L' PoP e synthétique limite toutes les communications réseau aux chemins suivants :

  • PoP → Backend « Instana » configuré : la communication s'effectue uniquement avec le backend « Instana » que vous définissez à l'aide du INSTANA_ENDPOINT_URL.
  • PoP → Cibles de surveillance synthétique : la communication s'effectue uniquement avec les points de terminaison que vous définissez dans les tests synthétiques.
  • Composants internes d' PoP : les services internes, tels qu' Redis et d'autres composants d' PoP, communiquent uniquement au sein de l'environnement PoP. L' PoP e n'établit aucune autre connexion réseau.
Lorsque vous déployez l' PoP de Synthetic dans un environnement isolé :
  • Vous contrôlez toutes les destinations réseau sortantes.
  • Vous gérez toutes les mises à jour manuellement.
  • L'application « PoP » ne communique pas avec des services d' IBM s externes.
  • L' PoP e fonctionne entièrement à l'intérieur des limites de votre réseau.
Ce comportement est adapté aux environnements soumis à des exigences strictes en matière de sécurité et de conformité.

Création d'un cluster

Créez un cluster K3s à un seul nœud. Si un cluster Kubernetes existe, ignorez cette étape.

  • En ligne :
    popctl cluster create
     
  • Environnement à air comprimé :
    popctl cluster create --air-gapped
     

Installation de la PoP synthétique

Installer le PoP: synthétique :

  • En ligne :
    popctl up
     
  • Environnement à air comprimé :
    popctl up --air-gapped
     

Si un cluster Kubernetes n'existe pas, vous pouvez créer un cluster et installer Synthetic PoP avec la commande suivante :

  • En ligne :
    popctl up --create-k3s-cluster
     
  • Environnement à air comprimé :
    popctl up --air-gapped --create-k3s-cluster
     

Pour installer le PoP synthétique avec le mot de passe Redis, entrez les valeurs à l'invite :

? Enter PoP label(label is PoP identifier which can not be changed): synthetic-pop
? Enter instana synthetic endpoint URL: https://synthetics-saas.instana.rocks
? Enter the namespace of Synthetic PoP: default
? Do you want to enable TLS encryption for redis communication? No
? Enter a new password for redis communication: **********
? Enter instana agent key: ************
? Enter the download key: **********************
 

Lorsque l'installation du PoP auto-hébergé est initialisée avec succès, il commence à mettre en place le cluster. Il peut s'écouler plusieurs minutes avant que le PoP synthétique ne soit prêt. Lorsque le message suivant s'affiche, votre PoP synthétique est prêt.

⠹ Setting up the cluster [6s] ✓
⠦ Applying synthetic-pop [1m54s] ✓
 

Pour installer Synthetic PoP avec l'option « Redis » TLS activée, saisissez les valeurs des paramètres à l'invite :

? Enter PoP label(label is PoP identifier which can not be changed): synthetic-pop-default
? Enter instana synthetic endpoint URL: https://synthetics-saas.instana.rocks
? Do you want to enable TLS encryption for redis communication? Yes
? Enter TLS certificate files path including tls.crt, tls.key and ca.crt (hit Enter to auto-generate):
? Enter instana agent key: ************
? Enter the download key: **********************
 

Lorsque le message suivant s'affiche, votre PoP synthétique est prêt.

⠧ Generate TLS Secrets [5s] ✓
⠋ Setting up TLS Secrets [0s] ✓
⠼ Applying synthetic-pop [1m24s] ✓
 

Installation de l'agent d' Instana

Installez un agent d' Instana pour surveiller l' PoP de Synthetic.

Pour installer l'agent d' Instana, exécutez la commande suivante. Il n'est pas nécessaire de passer le paramètre --air-gapped.

popctl agent apply
 

Saisissez les valeurs à l'invite.

Un exemple de sortie est présenté dans l'exemple suivant :

? popctl will use Helm Chart to install/update Instana Agent, please uninstall the existing Instana Agent first if the agent is installed with Operator or YAML, please confirm to install agent with Helm Chart Yes

? Enter Instana Endpoint port: 443

⠴ Applying instana-agent [5s] ✓
⠋ Setting up TLS Secrets [0s] ✓
⠋ Setting up Instana Agent TLS [0s] ✓
 

Désinstallation de l'agent « Instana »

Pour désinstaller l'agent Instana, exécutez la popctl agent delete commande.

Un exemple de sortie est présenté dans l'exemple suivant :

? Do you want to delete the Instana agent? Yes
⠋ Uninstalling instana-agent from namespace instana-agent [0s] ✓
⠋ Deleting Agent TLS Secrets [0s] ✓
 

Désinstallation de Synthetic PoP

Pour désinstaller Synthetic PoP, exécutez la commande 'popctl down

Un exemple de sortie est présenté dans l'exemple suivant :

? Do you want to uninstall PoP under namespasce "default"? Yes
⠧ Uninstalling synthetic-pop from namespace default [0s] ✓
 

Suppression de la grappe K3s

Pour supprimer la grappe K3s, exécutez la commande 'popctl cluster delete

Le fichier binaire K3s est supprimé en même temps que le cluster.

Foire aux questions

Trouvez les réponses aux questions les plus fréquemment posées en rapport avec le PoP synthétique.

Comment installer un nouveau PoP synthétique dans un autre espace de noms ?

Le fichier de configuration de l'installation est enregistré dans " ~/.popctl/synthetic-pop.yaml. Vous pouvez le renommer, puis réexécuter 'popctl up pour lancer une nouvelle installation pour le PoP synthétique.

Comment mettre à jour l'agent Synthetic PoP ou Instana?

Réexécutez la popctl up commande et l'agent popctl agent apply pour mettre à jour Synthetic PoP et Instana vers la dernière version tout en conservant la même configuration.

Comment modifier les paramètres de l'agent « Synthetic » ( PoP ) ou « Instana »?

Vous pouvez mettre à jour manuellement les paramètres enregistrés dans le " ~/.popctl/synthetic-pop.yaml et réexécuter le " popctl up ou le " popctl agent apply".

Comment résoudre le problème "Timeout error : context deadline exceeded" lorsque vous installez Synthetic PoP?

Vérifiez l'état des pods dans l'espace de noms Synthetic PoP en exécutant 'kubectl get pod -n <namespace>. Si un pod n'est pas prêt, exécutez 'kubectl logs -n <namespace> -f <pod-name> pour vérifier les messages du journal et voir le message d'erreur. Si un paramètre incorrect, tel qu'une clé d'agent d' Instana ation erronée ou une adresse de point de terminaison synthétique URL, a été saisi, corrigez-le et relancez popctl upl'opération.

Comment résoudre le problème "une autre opération (installation/mise à niveau/retour en arrière) est en cours" lorsque l'installation est interrompue ?

Si la commande " popctl up ou " popctl agent apply est interrompue de manière inattendue, exécutez à nouveau la même commande.

Pour obtenir la liste de toutes les versions, quel que soit leur statut, exécutez la commande " helm ls -aA

Un exemple de sortie est présenté dans l'exemple suivant :

 NAME           NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
 instana-agent  instana-agent   1               2024-08-21 03:41:38.75709505 -0400 EDT  pending-install instana-agent-1.2.73    1.275.0
 

La liste montre que le statut de la version est " pending-install. Pour désinstaller la version, exécutez la commande 'helm uninstall instana-agent -n instana-agent Ensuite, exécutez à nouveau la commande " popctl up ou " popctl agent apply

Comment passer d'autres paramètres tels que le numéro de réplique et le niveau de trace lorsque vous exécutez popctl up?

Vous pouvez utiliser '--set pour transmettre les paramètres définis dans le diagramme Helm 'values.yaml, comme pour la commande d'instillation Helm.

Pour afficher les paramètres de mise à l'échelle des répliques et mettre à jour le niveau de trace pour le pod du moteur de lecture :

 popctl up \
 --set browserscript.replicas=2 \
 --set ism.replicas=2 \
 --set http.replicas=2 \
 --set javascript.replicas=2
 

Pour mettre à jour le niveau de trace :

--set browserscript.traceLevel="DEBUG" \
--set http.traceLevel="DEBUG" \
--set javascript.traceLevel="DEBUG" \
--set ism.traceLevel="DEBUG" \
...
 

Comment configurer un serveur proxy pour Synthetic PoP afin de se connecter au serveur backend Instana à l'aide de popctl?

Vous pouvez utiliser --set pour transmettre les paramètres définis dans le tableau « Helmvalues.yaml», comme dans la commande d'installation « Helm ».

popctl up \
--set proxy.popProxyProtocol="" \
--set proxy.popProxyServer="" \
--set proxy.popProxyUserPass=""