Installation de l'agent sur Red Hat OpenShift
Vous pouvez installer l'agent d' Instana ation sur un cluster d' Red Hat OpenShift s en utilisant différentes méthodes, en fonction de vos besoins. Consultez la liste suivante pour vérifier les conditions préalables, découvrir toutes les méthodes d'installation disponibles et installer l'agent sur Red Hat OpenShift :
Prérequis
Avant d'installer l'agent, assurez-vous que les conditions préalables sont remplies.
Choisir le mode d'installation de l'agent
Vous pouvez installer l'agent d' Instana ation sur un cluster Red Hat OpenShift en utilisant les méthodes suivantes :
- Instana opérateur d'agence (en ligne)
- Instana agent opérateur (en mode air-gap)
- Helm graphique (en ligne)
- Helm diagramme (en environnement isolé)
Pour installer l'agent sur Red Hat OpenShift sur la plateforme IBM Z ou LinuxONE, utilisez le graphique disponible à l'adresse Helm (en ligne).
Installation à l'aide de l'opérateur
Pour installer l'agent d' Instana ation sur Red Hat OpenShift à l'aide de l'opérateur, procédez comme suit :
Complétez les étapes préalables avant de procéder à l'installation de l'opérateur.
Installez l'opérateur en utilisant l'une des méthodes suivantes :
Installez l'opérateur en utilisant Operator Lifecycle Manager (OLM) (de préférence pour Red Hat OpenShift).
Installation de l'opérateur à l'aide d' OLM
Pour installer l'agent d' Instana sur Red Hat OpenShift à l'aide de OLM, procédez comme suit :
Installez l'opérateur d'agent « Instana » à partir de OperatorHub.io ou du catalogue des applications conteneurisées disponible sur Red Hat OpenShift.
Si vous ne disposez pas encore d'un espace de noms cible, créez-en un dans lequel l'agent d' Instana ation doit être installé. Par exemple, vous pouvez créer un espace de noms "
instana-agentpour exécuter l'opérateur. Il n'est pas nécessaire d'exécuter l'agent dans le même espace de nom que l'opérateur.Suivez les étapes 2 à 6 de la section Installation manuelle de l'opérateur pour créer la ressource personnalisée pour l'agent et appliquer la ressource personnalisée. L'opérateur récupère la configuration à partir de la ressource personnalisée et déploie l'agent d' Instana.
Installation manuelle de l'opérateur
Pour installer l'opérateur manuellement sur Red Hat OpenShift, effectuez les étapes suivantes :
Sur la page d'accueil de l'interface utilisateur d' Instana, cliquez sur « Agents et collecteurs ». Dans l'onglet « Agents » d' Instana, sélectionnez « Installer les agents ».
Sur la page du catalogue de déploiement de l'agent, cliquez sur la tuile OpenShift - Operator.
Déployez la dernière version de l'opérateur en utilisant la commande suivante :
kubectl apply -f https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yamlAprès avoir exécuté cette commande, l'opérateur est opérationnel dans l'espace de noms que vous avez créé et attend la création de la ressource personnalisée "
instana-agentSaisissez le nom du cluster et (facultativement) la zone d'agents dont vous voulez que le cluster fasse partie.
Le nom du cluster (<nom_du_cluster>) est le nom personnalisé du cluster surveillé par ce DaemonSet.
La zone d'agent (<nom_de_votre_zone>) sert à personnaliser le regroupement des zones qui s'affiche sur la carte de l'infrastructure.
Créez un fichier d' YAML s de ressource personnalisé en copiant le modèle « YAML » fourni dans l'interface utilisateur de Instana.
Le modèle « YAML » est prérempli avec votre clé d'agent, le point de terminaison de l'agent hôte, le nom du cluster et la zone de l'agent.
Modifiez le fichier de ressource personnalisée « YAML ». Pour consulter un exemple du fichier « YAML », rendez-vous sur instana_v1_extended_instanaagent.yaml.
La ressource personnalisée de l'agent Instana prend en charge exactement la même configuration que le graphique Instana Helm. Pour obtenir la liste détaillée de tous les paramètres de configuration et des exemples, consultez le tableau disponible à l'adresse InstanaHelm.
Voir également les rubriques suivantes :
Si vous souhaitez installer l'agent dans un environnement auto-hébergé et que la clé de l'agent ne dispose pas des autorisations nécessaires pour télécharger depuis l'Artifactory public Instana, ajoutez la clé de téléchargement comme suit
downloadKey: <your_download_key>: Par exemple :
agent: key: wPYpH7EGK0ucLaO0Nu7BYw downloadKey: m007YDoWNload6kE42yukg endpointHost: ...Si vous souhaitez activer le chiffrement par le protocole TLS pour le point de terminaison de l'agent, utilisez un secret existant ou un certificat et une clé privée :
Utilisation d'un secret existant
Vous pouvez utiliser un secret existant de ce type
kubernetes.io/tlspour le chiffrement « TLS ». Mais celaagent.tls.secretNamedoit être défini dans le fichier de ressources personnalisées ` YAML `.Utiliser un certificat et une clé privée
Au lieu d'un secret existant, un certificat et une clé privée peuvent être utilisés. Le certificat et la clé privée doivent être base64-encoded.
Pour utiliser cette variante, ajoutez les deux paramètres suivants au fichier de ressource personnalisée ` YAML ` :
agent.tls.certificateagent.tls.key
Remarque : siagent.tls.secretNameest défini, alorsagent.tls.certificateetagent.tls.keysont ignorés.Facultatif : vous pouvez remplacer les valeurs suivantes :
agent.env: Utilisez ce champ pour spécifier des variables d'environnement pour l'agent, telles que la configuration du proxy pour l'agent. Pour connaître les autres valeurs d'environnement possibles, consultez la configuration de l'agent. Voir l'exemple suivant :spec: agent: env: INSTANA_AGENT_TAGS: stagingagent.configuration_yaml: Utilisez ce champ pour spécifier un fichier de configuration de l'agent configuration.yaml. Voir l'exemple suivant :spec: agent: configuration_yaml: | # Example of configuration yaml template # Host com.instana.plugin.host: tags: - 'dev' - 'app1'Pour plus d'informations, consultez la section « Configuration des agents hôtes à l'aide du fichier de configuration de l'agent ».
Si vous souhaitez déployer l'agent statique, configurez le fichier de ressource personnalisée YAML en y indiquant l'image de l'agent statique. Pour dresser la liste de l'image statique de l'agent, remplacez '
agent.image.namepar 'containers.instana.io/instana/release/agent/static. Voir l'exemple suivant :spec: agent: image: name: containers.instana.io/instana/release/agent/static
Appliquez le fichier de ressource personnalisée « YAML » :
kubectl apply -f instana-agent.customresource.yamloù
instana-agent.customresource.yamlcorrespond au nom de votre fichier de ressources personnalisées ( YAML ).L'opérateur récupère la configuration dans le fichier de ressource personnalisée « YAML » et déploie l'agent « Instana ».
L'agent est maintenant installé. Pour savoir ce que vous pouvez faire après l'installation, consultez la section Que faire ensuite ?
Pour mettre à jour l'agent, voir Mise à jour de l'installation d'un opérateur.
Installation à l'aide de l'opérateur dans un environnement isolé physiquement
Dans un environnement entièrement isolé physiquement, les nœuds du cluster ne peuvent pas récupérer d'images directement depuis icr.io ou containers.instana.io. Utilisez un serveur relais (bastion) disposant d'un accès à Internet pour copier toutes les images nécessaires dans un référentiel privé accessible par le cluster. Ensuite, déployez l'opérateur à partir des images en miroir.
Les étapes décrites dans cette section utilisent un espace de noms privé dans « IBM Cloud Container Registry » (ICR) comme registre cible. Tout registre compatible OCI accessible depuis l'hôte de relais et depuis le cluster cible convient tout aussi bien, par exemple JFrog Artifactory, Red Hat, Quay, Harbor ou un registre de distribution auto-hébergé. Si vous utilisez un registre autre que l'ICR, ignorez les étapes spécifiques à l'ICR et remplacez les informations relatives à l' URL et aux identifiants d'authentification de votre propre registre partout où icr.io elles apparaissent.
[internet] ──pull──▶ jump host ──push──▶ <private-registry>/instana-airgap-mirror ◀──pull── OCP cluster
(skopeo)
Le scripts/mirror-instana-images.sh script permet de mettre en miroir les trois composants en une seule exécution :
| Composant | Image source |
|---|---|
| Opérateur | icr.io/instana/instana-agent-operator:latest |
| Agent (statique) | containers.instana.io/instana/release/agent/static:latest |
| Kubernetes capteur | icr.io/instana/k8sensor:latest |
Conditions préalables à l'installation d'un opérateur en mode « air-gap »
Avant de continuer, installez les outils suivants sur l 'hôte intermédiaire :
| Outil | Fonction | Guide d'installation |
|---|---|---|
skopeo |
Copier des images de conteneurs entre des registres sans utiliser le démon « Docker » | dnf install skopeo et brew install skopeo |
jq |
Analyser les métadonnées de l'image JSON renvoyées par skopeo inspect |
dnf install jq et brew install jq |
oc |
Interface de ligne de commande OpenShift | Distribué avec OpenShift |
ibmcloud CLI + module d'extension « Container Registry » |
Créer et s'authentifier avec l'espace de noms ICR | ibmcloud plugin install container-registry |
ibmcloud CLI n'est requise que lorsque l'ICR est utilisé comme registre cible. Ignorez cette étape si vous utilisez un autre registre, tel que Artifactory, Quay ou Harbor.skopeo --version
jq --version
oc version --client
Installation
Pour installer l'agent à l'aide de l'opérateur dans un environnement isolé physiquement, procédez comme suit :
- Préparez votre registre privé et authentifiez Skopeo auprès de celui-ci.Remarque : si vous utilisez ICR, suivez les étapes suivantes. Si vous utilisez un autre registre ( Artifactory, Quay, Harbor ou Distribution), créez le référentiel cible correspondant, authentifiez Skopeo à l'aide des identifiants de votre registre, puis passez à l'étape 2.
- Connectez-vous à IBM Cloud et créez un espace de noms dédié aux images en miroir :
ibmcloud login --sso ibmcloud cr region-set global ibmcloud cr namespace-add instana-airgap-mirror - Créez une clé d' API IAM dédiée pour l'accès non interactif au registre :
ibmcloud iam api-key-create instana-mirror-key -d "skopeo mirror key" - Exportez la clé sans l'afficher sur le terminal, puis vérifiez que la connexion fonctionne :
read -rs ICR_API_KEY skopeo login --username iamapikey --password "$ICR_API_KEY" icr.ioskopeo loginRemarque : si un fichier précédentibmcloud cr logina écrit uneidentitytokenentrée dans un~/.docker/config.jsonchamp que skopeo ne peut pas écraser, ouvrez le fichier, supprimez cetteicr.ioentrée, enregistrez-le, puis réessayez.
- Connectez-vous à IBM Cloud et créez un espace de noms dédié aux images en miroir :
Obtenir une clé de téléchargement pour l'agent d' Instana.
containers.instana.ioL'image statique de l'agent est toujours disponible, ce qui nécessite une clé de téléchargement de l'agent. Vous pouvez le récupérer depuis l'interface utilisateur d' Instana, dans Paramètres → Agents → Installer l'agent, ou en faire la demande auprès de votre équipe de gestion de compte Instana. Enregistrez-le sans l'afficher à l'écran :read -rs INSTANA_AGENT_DOWNLOAD_KEY- Synchronisez les images avec le registre privé en exécutant le script de synchronisation depuis l'hôte de saut. Le script détermine la version actuelle
:latestde chaque image, copie à la fois la:latestbalise et la balise versionnée vers la destination, puis génère un fichier de propriétés contenant toutes les coordonnées déterminées../scripts/mirror-instana-images.sh \ --registry icr.io \ --namespace instana-airgap-mirror \ --dest-creds "iamapikey:$ICR_API_KEY" \ --dest-tls-verify true \ --agent-download-key "$INSTANA_AGENT_DOWNLOAD_KEY"Le script génère un
mirror-instana-images.propertiesfichier contenant les coordonnées exactes de l'image déterminées lors de la mise en miroir. Par exemple :operator_version=2.2.14 operator_destination=icr.io/instana-airgap-mirror/instana-agent-operator agent_version=1.320.3 agent_destination=icr.io/instana-airgap-mirror/agent k8sensor_version=1.4.16 k8sensor_destination=icr.io/instana-airgap-mirror/k8sensorRemarque : enregistrez ce fichier avec vos manifestes de déploiement. Les coordonnées d'image qu'il contient servent à configurer laInstanaAgentressource personnalisée lors d'une étape ultérieure. - Vérifiez que les trois dépôts figurent bien dans le registre et qu'ils comportent les balises attendues. Pour ICR, exécutez la commande suivante :
ibmcloud cr images --restrict instana-airgap-mirror - Créez l'espace de noms cible et attribuez aux comptes de service les contraintes de contexte de sécurité (SCC) requises. Le pod de l'agent s'exécute avec des privilèges (réseau de l'hôte et PID de l'hôte), et le compte de service de l'agent distant doit être utilisé
anyuidpour son conteneur init.INSTANA_AGENT_NAMESPACE=instana-agent oc new-project ${INSTANA_AGENT_NAMESPACE} oc adm policy add-scc-to-user privileged -z instana-agent -n "${INSTANA_AGENT_NAMESPACE}" oc adm policy add-scc-to-user anyuid -z instana-agent-remote -n "${INSTANA_AGENT_NAMESPACE}" - Créez un secret « pull » de type « Kubernetes » avec les identifiants du registre, puis pré-créez le compte de service de l'opérateur et associez-lui ce secret avant le déploiement. Créez au préalable le compte de service. Si ce n'est pas le cas, le manifeste de l'opérateur le crée à l'étape suivante, ce qui provoque une
ImagePullBackOfferreur lors du premier démarrage.oc create secret docker-registry icr-pull-secret \ --docker-server=icr.io \ --docker-username=iamapikey \ --docker-password="$ICR_API_KEY" \ -n instana-agent oc create serviceaccount instana-agent-operator -n instana-agent oc secrets link instana-agent-operator icr-pull-secret --for=pull -n instana-agent - Téléchargez le dernier manifeste de version et remplacez la référence à l'image de l'opérateur en amont par celle du miroir :
curl -fsSL \ https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yaml \ -o instana-agent-operator.yaml sed 's|image: icr.io/instana/instana-agent-operator:|image: icr.io/instana-airgap-mirror/instana-agent-operator:|g' \ instana-agent-operator.yaml > instana-agent-operator-mirrored.yamlRemarque : seule la ligne contenant l'image de l'opérateur est remplacée ici. LaInstanaAgentressource personnalisée qui fait référence aux images de l'agent et d' k8sensor s est configurée séparément lors d'une étape ultérieure. - Appliquez le manifeste corrigé et attendez que le déploiement soit terminé :
oc apply -f instana-agent-operator-mirrored.yaml oc rollout status deployment/instana-agent-controller-manager \ -n instana-agent --timeout=120s - Créez au préalable les comptes de service des agents et associez le secret « pull » à chacun d'entre eux. L'opérateur crée
instana-agentetinstana-agent-k8sensorlors de la première application de laInstanaAgentressource personnalisée, mais « OpenShift » ne propage pas les secrets de récupération du comptedefaultde service vers les pods s'exécutant sous ces comptes gérés par l'opérateur. Si vous les créez au préalable, vous éviterez uneErrImagePullerreur lors de la première planification du pod.oc create serviceaccount instana-agent -n instana-agent oc create serviceaccount instana-agent-k8sensor -n instana-agent oc secrets link instana-agent icr-pull-secret --for=pull -n instana-agent oc secrets link instana-agent-k8sensor icr-pull-secret --for=pull -n instana-agentErrImagePullRemarque : si vous avez déjà déployé la ressource personnalisée et que les pods sont en cours d'exécution, les comptes de service existent, mais le secret n'est pas encore associé. Exécutez les deuxoc secrets linkcommandes précédentes, puis supprimez les pods défaillants afin qu'ils soient replanifiés. - Créez le
InstanaAgentmanifeste de ressources personnalisées. Remplacez les valeurs par défaut par votre configuration réelle :- Remplacez
<INSTANA_AGENT_KEY>et<INSTANA_AGENT_DOWNLOAD_KEY>par les clés disponibles dans l'interface utilisateur d' Instana, sous Agents et collecteurs → Installer des agents → Opérateur « OpenShift ». - Remplacez les balises d'image par celles provenant de
mirror-instana-images.properties. - Mettez à jour les champs relatifs au proxy en fonction de votre environnement.
- Définissez
proxyUseretproxyPasswordsur des chaînes vides si aucune authentification par proxy n'est requise.
apiVersion: instana.io/v1 kind: InstanaAgent metadata: name: instana-agent namespace: instana-agent spec: zone: name: <your_zone_name> cluster: name: <your_cluster_name> agent: key: <INSTANA_AGENT_KEY> downloadKey: <INSTANA_AGENT_DOWNLOAD_KEY> endpointHost: <your-ingress-endpoint> endpointPort: "443" proxyHost: <proxy-host> proxyPort: "3128" proxyProtocol: http proxyUser: "" proxyPassword: "" image: name: icr.io/instana-airgap-mirror/agent tag: "<agent_version>" # value of agent_version in mirror-instana-images.properties env: {} configuration_yaml: | # You can leave this empty, or use this to configure your Instana agent. # See https://docs.instana.io/setup_and_manage/host_agent/on/kubernetes/ k8s_sensor: image: name: icr.io/instana-airgap-mirror/k8sensor tag: "<k8sensor_version>" # value of k8sensor_version in mirror-instana-images.propertiesRemarque : aucunpullSecretschamp n'est obligatoire dans la ressource personnalisée, car vous avez fourni les identifiants de récupération d'images en les associanticr-pull-secretaux comptes de service lors de l'étape précédente. - Remplacez
- Appliquez la ressource personnalisée :
oc apply -f instana-agent-cr.yaml - Vérifiez le déploiement en affichant la liste des pods dans l'espace
instana-agentde noms :oc get pods -n instana-agentUne fois le déploiement terminé, vous verrez un
instana-agent-controller-managerpod, uninstana-agentpod « DaemonSet » par nœud et troisinstana-agent-k8sensorpods, tous enRunningétat « ». Une fois la connexion au backend établie via le proxy configuré, le cluster apparaît dans l'interface utilisateur d' Instana, sous la zone et le nom de cluster configurés.
L'agent est installé. Pour plus d'informations sur les étapes suivantes, consultez la section « Que faire ensuite? ».
Installation à l'aide du tableau « Helm »
Vous pouvez utiliser le tableau Helm pour installer l'agent. Le tableau « Helm » ajoute l'agent « Instana » à tous les nœuds pouvant être planifiés dans votre cluster à l'aide d'un « DaemonSet ».
Pour installer l'agent « Instana » à l'aide de l'image « Helm », vous devez d'abord installer ou mettre à niveau vers la version 3 d' Helm.
Le graphique de l'agent Instana Helm prend en charge Red Hat OpenShift 4.x.
Pour installer l'agent Instana sur Red Hat OpenShift à l'aide du tableau Helm, procédez comme suit :
Sur la page d'accueil de l'interface utilisateur d' Instana, cliquez sur « Agents et collecteurs ». Dans l'onglet « Agents » de l' Instana, sélectionnez « Installer les agents ».
Sur la page du catalogue de déploiement de l'agent, cliquez sur la tuile OpenShift - Helm chart.
Saisissez le nom du cluster et (facultativement) la zone d'agents dont vous voulez que le cluster fasse partie.
Le nom du cluster (
<your_cluster_name>) est le nom personnalisé du cluster surveillé par ce DaemonSet.La zone d'agent (
<your_zone_name>) permet de personnaliser le regroupement des zones affiché sur la carte de l'infrastructure.Le code de déploiement de l'agent est mis à jour avec les valeurs que vous avez fournies. Tous les autres paramètres requis sont pré-remplis dans le code de déploiement de l'agent, qui ressemble à l'exemple suivant :
INSTANA_AGENT_NAMESPACE=instana-agent oc login -u system:admin oc new-project ${INSTANA_AGENT_NAMESPACE} oc adm policy add-scc-to-user privileged -z instana-agent -n "${INSTANA_AGENT_NAMESPACE}" oc adm policy add-scc-to-user anyuid -z instana-agent-remote -n "${INSTANA_AGENT_NAMESPACE}" helm install instana-agent \ --repo https://agents.instana.io/helm \ --namespace ${INSTANA_AGENT_NAMESPACE} \ --set agent.key='<your_agent_key>' \ --set agent.endpointHost='<your_host_agent_endpoint>' \ --set agent.endpointPort=443 \ --set cluster.name='<your_cluster_name>' \ --set zone.name='<your_zone_name>' \ instana-agentLorsque vous installez l'agent Instana sur IBM Z ou LinuxONE,, configurez des zones distinctes au cours du processus d'installation. Cette distinction est importante car l'agent d' Instana, tout comme les charges de travail des applications qu'il surveille, se trouvent au sein du même cluster.
Contrairement à d'autres environnements où l' Instana e et les applications surveillées sont déployées séparément, les configurations de type IBM Z ou LinuxONE partagent le même cluster. Cela rend indispensable la mise en place de zones d'isolement. Pour isoler les zones, assurez-vous que les nœuds sur lesquels « Instana » est installé sont correctement étiquetés et marqués.
Si l'étiquette utilisée est
node-role.kubernetes.io/monitor=true. Pour vérifier que les nœuds de l' Instana t correctement identifiés, exécutez la commande suivante :kubectl get nodes -l node-role.kubernetes.io/monitor=truePour vérifier que les nœuds de l' Instana sont bien marqués comme prévu avec l'étiquette d'exemple
node.instana.io/monitor=true, exécutez la commande suivante :kubectl get nodes -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{range .spec.taints[*]}{.key}{"="}{.value}{"\t"}{end}{"\n"}{end}' | grep 'node\.instana\.io/monitor'Après avoir vérifié que les nœuds d' Instana s sont étiquetés et marqués, vous pouvez suivre les étapes suivantes :
Étiqueter les nœuds exécutant des charges de travail d'application : assurez-vous que les nœuds exécutant des charges de travail d'application sont correctement étiquetés afin de les distinguer des nœuds d'infrastructure.
NODE=<your node name> CLUSTER=<your cluster name> oc label node worker${NODE}.${CLUSTER_NAME} workload="true"Définir deux zones
- Configurez les nœuds « Instana » sur le
INFRASTRUCTUREmode. - Configurez les nœuds de charge de travail de l'application en mode
APM. - Créez un fichier « YAML
agent_values.yaml» et indiquez-y les zones ainsi que leurs affinités et leurs tolérances.
zones: - name: workloads mode: APM affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: workload operator: Exists - name: instana-nodes mode: INFRASTRUCTURE tolerations: - key: node.instana.io/monitor operator: Equal effect: NoSchedule value: "true" affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: node-role.kubernetes.io/monitor operator: In values: - "true"Dans cet exemple de fichier ` YAML `, on part du principe que les nœuds de l' Instana sont étiquetés avec
node-role.kubernetes.io/monitor=trueet marqués avec la clé :node.instana.io/monitor=true. Mettez ces valeurs à jour en fonction de vos propres conventions d'étiquetage et de marquage des nœuds.Ajoutez votre fichier YAML personnalisé à la fin du code de déploiement de l'agent, comme indiqué dans l'exemple suivant :
INSTANA_AGENT_NAMESPACE=instana-agent oc login -u system:admin oc new-project ${INSTANA_AGENT_NAMESPACE} oc adm policy add-scc-to-user privileged -z instana-agent -n "${INSTANA_AGENT_NAMESPACE}" oc adm policy add-scc-to-user anyuid -z instana-agent-remote -n "${INSTANA_AGENT_NAMESPACE}" helm install instana-agent \ --repo https://agents.instana.io/helm \ --namespace ${INSTANA_AGENT_NAMESPACE} \ --set agent.key='<your_agent_key>' \ --set agent.endpointHost='<your_host_agent_endpoint>' \ --set agent.endpointPort=443 \ --set cluster.name='<your_cluster_name>' \ --set zone.name='<your_zone_name>' \ instana-agent -f agent_values.yaml- Configurez les nœuds « Instana » sur le
Modifiez le code de déploiement de l'agent.
Pour configurer l'installation, vous pouvez spécifier les valeurs sur la ligne de commande à l'aide du
--setdrapeau ou fournir un fichier de YAML s contenant vos valeurs à l'aide du-fdrapeau. Pour obtenir la liste détaillée de tous les paramètres de configuration et des exemples, consultez le tableau disponible à l'adresse InstanaHelm. Consultez également les rubriques suivantes :Facultatif : Pour déployer l'agent statique, activez le drapeau "
--set agent.image.name=containers.instana.io/instana/release/agent/static.Le service Kubernetes créé par défaut expose les éléments suivants au cluster :
- OpenTelemetry point de terminaison pour
otlpl'ingestion via gRPC - la mise en œuvre de Prometheus«
remote_writeAPI - SDK Web Trace
- autres API d'agent.
- OpenTelemetry point de terminaison pour
Facultatif : si vous souhaitez activer le chiffrement « TLS » pour le point de terminaison de l'agent, utilisez un secret existant ou un certificat et une clé privée :
Utilisation d'un secret existant de type
kubernetes.io/tlsVous pouvez utiliser un secret existant de ce type
kubernetes.io/tlspour le chiffrement « TLS ». Mais vous devez spécifier le 'secretNameavec le '--set 'agent.tls.secretName=<YOUR_SECRET_NAME>'pendant l'installation. Les fichiers du secret fourni sont alors inclus dans l'agent.Utiliser un certificat et une clé privée
Le certificat et la clé privée doivent être base64-encoded. Pour utiliser cette variante, exécutez la commande ` helm ` avec les paramètres supplémentaires suivants :
--set 'agent.tls.certificate=<YOUR_CERTIFICATE_BASE64_ENCODED>' --set 'agent.tls.key=<YOUR_PRIVATE_KEY_BASE64_ENCODED>'Remarque : si l'option « agent.tls.secretName » est activée, les options « agent.tls.certificate » et « agent.tls.key » sont ignorées.
Copiez et exécutez le code de déploiement de l'agent.
L'agent est maintenant installé. Pour savoir ce que vous pouvez faire après l'installation, consultez la section Que faire ensuite ?
Pour mettre à jour l'agent, voir Mise à jour de l'installation d'un opérateur.
Installation à l'aide d'un tableau d' Helm s dans un environnement isolé physiquement
Red Hat OpenShift fournit un registre de conteneurs interne que vous pouvez utiliser dans des environnements isolés physiquement pour stocker des images permettant d'exécuter des charges de travail au sein du cluster.
Assurez-vous d'installer les logiciels suivants avant d'installer l'agent :
- Interface de ligne de commande OpenShift (oc)
- jq
- Skopeo
Pour installer l'agent d' Instana ation à l'aide d'un tableau de configuration « Helm » dans un environnement isolé, procédez comme suit :
Connectez-vous au cluster « Red Hat OpenShift » en tant qu'administrateur en exécutant la commande suivante :
oc login --server=https://api.myopenshiftcluster.com:6443 -u kubeadmin -p $OPENSHIFT_PASSWORDRendez le registre de conteneurs interne accessible depuis votre hôte de saut :
oc patch configs.imageregistry.operator.openshift.io/cluster --type merge -p '{"spec":{"defaultRoute":true}}'Récupérer le nom d'hôte utilisé pour accéder au registre depuis l'extérieur :
HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}')Créez un projet « instana » (s'il n'a pas déjà été créé) dans le cluster Red Hat OpenShift, afin de permettre le transfert d'images vers l'espace de noms spécifié :
oc get project instana || oc new-project instanaAfficher les informations relatives à l'hôte du registre :
echo "${HOST}" # default-route-openshift-image-registry.apps.myopenshiftcluster.comRécupérez le certificat de l'opérateur d'Ingress de confiance et ajoutez-le dans le répertoire de l'autorité de certification (CA) du système :
oc extract secret/$(oc get ingresscontroller -n openshift-ingress-operator default -o json | jq '.spec.defaultCertificate.name // "router-certs-default"' -r) -n openshift-ingress --confirmSi cette étape n'est pas respectée, des avertissements relatifs au certificat (par exemple,
tls: failed to verify certificate: x509: certificate signed by unknown authority) peuvent s'afficher lorsque vous essayez de pousser l'image vers le registre cible.Importez l'autorité de certification dans le magasin des autorités de certification de confiance du système à l'aide des commandes suivantes :
sudo mv tls.crt /etc/pki/ca-trust/source/anchors/ sudo update-ca-trustConnectez-vous aux registres source et de destination à l'aide de l'adresse Skopeo :
skopeo login -u kubeadmin -p $(oc whoami -t) $HOST skopeo login -u _ -p $AGENT_DOWNLOAD_KEY containers.instana.ioDéterminez les dernières versions disponibles pour chaque composant :
LATEST_OPERATOR_VERSION=$(skopeo inspect docker://icr.io/instana/instana-agent-operator:latest | jq -r ".Labels.version") LATEST_AGENT_VERSION=$(skopeo inspect docker://containers.instana.io/instana/release/agent/static:latest | jq -r ".Labels.version") LATEST_K8S_SENSOR_VERSION=$(skopeo inspect docker://icr.io/instana/k8sensor:latest | jq -r '.Labels["org.opencontainers.image.revision"]')Copiez les composants requis dans le registre local :
skopeo copy docker://icr.io/instana/instana-agent-operator:latest "docker://${HOST}/instana/instana-agent-operator:${LATEST_OPERATOR_VERSION}" skopeo copy docker://containers.instana.io/instana/release/agent/static:latest "docker://${HOST}/instana/instana-agent-static:${LATEST_AGENT_VERSION}" skopeo copy docker://icr.io/instana/k8sensor:latest "docker://${HOST}/instana/k8sensor:${LATEST_K8S_SENSOR_VERSION}"
Déploiement du graphique d' Helm de l'agent
Pour récupérer le graphique « Helm », procédez comme suit :
Créer un nouvel espace de noms pour le déploiement de l'agent :
INSTANA_AGENT_NAMESPACE=instana-agent oc new-project ${INSTANA_AGENT_NAMESPACE}Récupérez le graphique « Helm » sur l'hôte de saut :
helm pull instana-agent --repo https://agents.instana.io/helm --untarSi vous effectuez une mise à niveau plutôt qu'une installation initiale, appliquez manuellement les CRD (définitions de ressources personnalisées) à partir du
crdsdossier situé dans le répertoire extrait « Helm » :oc apply -f instana-agent/crds/Créez un nouveau fichier
custom-values.yamlpour remplacer les références d'images par défaut par celles spécifiques à votre environnement isolé :Remarque : Lorsque vous déployez le graphique « Helm » sur le cluster OCP, vous pouvez utiliser les URL du registre interne. image-registry.openshift-image-registry.svc:5000/instana/instana-agent-operator:${LATEST_OPERATOR_VERSION} image-registry.openshift-image-registry.svc:5000/instana/instana-agent-static:${LATEST_AGENT_VERSION} image-registry.openshift-image-registry.svc:5000/instana/k8sensor:${LATEST_K8S_SENSOR_VERSION}Consultez le fichier
custom-values.yamld'exemple suivant :cluster: name: demo-cluster zone: name: airgapped-demo agent: endpointHost: ingress-red-saas.instana.io endpointPort: 443 key: xxx image: name: image-registry.openshift-image-registry.svc:5000/instana/instana-agent-static tag: 1.290.20 configuration_yaml: | # Manual a-priori configuration. Configuration will be only used when the sensor # is actually installed by the agent. # Host #com.instana.plugin.host: # tags: # - 'dev' # - 'app1' k8s_sensor: image: name: image-registry.openshift-image-registry.svc:5000/instana/k8sensor tag: b4eac7d controllerManager: image: name: image-registry.openshift-image-registry.svc:5000/instana/instana-agent-operator tag: v2.1.20Accordez les autorisations nécessaires à l'utilisateur ou au groupe « instana-agent » pour exécuter l' DaemonSet ation de l'agent et le déploiement de l'agent distant :
oc adm policy add-scc-to-user privileged -z instana-agent -n ${INSTANA_AGENT_NAMESPACE} oc adm policy add-scc-to-user anyuid -z instana-agent-remote -n ${INSTANA_AGENT_NAMESPACE}Modifiez la politique de récupération afin de permettre à tous les comptes de service de l'espace de noms « instana-agent » d'accéder aux images de l'espace de noms « instana » :
oc policy add-role-to-group system:image-puller system:serviceaccounts:instana-agent -n instanaDéployez le diagramme « Helm », qui se trouve dans le répertoire «./instana-agent », dans l'espace de noms « instana-agent » nouvellement créé à l'aide des commandes suivantes :
helm install instana-agent \ --namespace ${INSTANA_AGENT_NAMESPACE} \ -f custom-values.yaml \ ./instana-agent
Validation du déploiement
Pour valider les images privées déployées sur le cluster, procédez comme suit :
Pour répertorier tous les pods de l'espace
instana-agentde noms, exécutez la commande suivante :oc get pods -n instana-agentVoici un exemple de réponse :
NAME READY STATUS RESTARTS AGE instana-agent-6275r 1/1 Running 0 2m52s instana-agent-controller-manager-5c9bd89b7c-697mf 1/1 Running 0 3m instana-agent-k8sensor-5466f8cb4d-9j7p2 1/1 Running 0 2m52s instana-agent-k8sensor-5466f8cb4d-fdwsj 1/1 Running 0 2m52s instana-agent-k8sensor-5466f8cb4d-jstc4 1/1 Running 0 2m52s instana-agent-sjmtc 1/1 Running 0 2m52s instana-agent-z5plx 1/1 Running 0 2m52sAssurez-vous que trois
k8sensorpods, uninstana-agent-controller-managerpod et uninstana-agentpod par nœud de travail sont en cours d'exécution.Vérifiez les images en exécutant la commande suivante :
oc get ds,deployment -o yaml | grep "image:"Voici un exemple de réponse :
image: image-registry.openshift-image-registry.svc:5000/instana/instana-agent-static:1.290.20 image: image-registry.openshift-image-registry.svc:5000/instana/instana-agent-operator:v2.1.20 image: image-registry.openshift-image-registry.svc:5000/instana/k8sensor:b4eac7d
L'agent est maintenant installé. Pour savoir ce que vous pouvez faire après l'installation, consultez la section « Étapes suivantes ».
Pour plus d'informations sur les points de terminaison de l'agent, consultez la section « Configuration de l'agent hôte ».