Installation de l'agent sur Kubernetes
Vous pouvez installer l'agent d' Instana ation dans un environnement en ligne ou hors ligne (isolé physiquement) au sein d'un cluster Kubernetes. Consultez la liste ci-dessous pour vérifier les conditions préalables, découvrir toutes les méthodes d'installation disponibles et installer l'agent sur Kubernetes.
Prérequis
Avant d'installer l'agent hôte, assurez-vous que les conditions préalables sont remplies.
Choisir le mode d'installation de l'agent
L'agent hôte peut être installé à l'aide du gestionnaire de paquets Kubernetes Helm ou par un opérateur. Les deux options d'installation sont disponibles pour les environnements hors ligne (isolés physiquement) et en ligne :
Pour connaître toutes les options de configuration disponibles pour le graphique « Helm », consultez la référence de configuration. Ces options de configuration s'appliquent de la même manière au CRD de l'opérateur.
Installation de l'agent dans un environnement isolé physiquement
Vous pouvez installer l'agent dans un environnement à air comprimé en utilisant deux méthodes :
Installation à l'aide d'un tableau « Helm » dans un environnement isolé
Pour installer l'agent dans un environnement à air comprimé, procédez comme suit :
Installez Docker en exécutant les commandes suivantes :
sudo yum install -y yum-utilssudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo systemctl start dockerInstallez Helm en exécutant les commandes suivantes :
sudo suyum install -y epel-releaseyum install -y snapdsystemctl enable --now snapd.socketln -s /var/lib/snapd/snap /snapsnap install helm --classic PATH="$PATH:/snap/bin/"helm versionInstallez Minikube en suivant les étapes suivantes :
Remarque : ces étapes sont données à titre d'exemple pour illustrer l'environnement cible.Ajouter le dépôt Kubernetes:
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni EOFInstallez l'outil en ligne de commande « kubectl » :
sudo yum install -y kubectlTéléchargez le paquetage RPM Minikube :
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpmInstallez le paquetage RPM Minikube :
sudo rpm -Uvh minikube-latest.x86_64.rpmDémarrez un cluster Kubernetes en utilisant Docker:
minikube start --force --driver=dockerConfigurer l'environnement Docker pour qu'il puisse être utilisé avec Minikube :
eval $(minikube docker-env)Vérifiez le cluster Kubernetes:
kubectl cluster-info
Extraire les images Docker nécessaires pour les transférer dans un environnement à air comprimé :
Connectez-vous à l'interface de gestion Instana Container Registry à l'aide de votre clé d'agent :
docker login https://containers.instana.io/v2 -u _ -p <agentKey>Téléchargez la dernière version de l'agent depuis le site Instana Container Registry :
docker pull containers.instana.io/instana/release/agent/static:latestTéléchargez la dernière image de l'agent d' Instana :
docker pull icr.io/instana/instana-agent-operator:latestTéléchargez la dernière version du capteur « Instana » Kubernetes :
docker pull icr.io/instana/k8sensor:latestDéconnectez-vous du registre Docker:
docker logoutConvertir les images Docker en fichiers '
.tardocker imagesdocker tag <instanaAgentImageID> instana/agentdocker save instana/agent > instana-agent.tardocker tag <operatorImagerId> instana/instana-agent-operatordocker save instana/instana-agent-operator > instana-agent-operator.tardocker tag <k8SensorID> instana/k8sensordocker save instana/k8sensor > instana-k8sensor.tarCopiez les fichiers (
instana-agent.tar,instana-agent-operator.tar, etinstana-k8sensor.tar) sur l'hôte isolé du réseau où vous souhaitez installer l'agent.Supprimer les images actuelles de l'hôte à air comprimé :
docker rmi -f <instanaAgentImageID> <operatorImagerId> <k8SensorID>Importer des images à partir de
.tarfichiers (instana-agent.tar,instana-agent-operator.tar, etinstana-k8sensor.tar) :
docker load --input instana-agent.tardocker load --input instana-agent-operator.tardocker load --input instana-k8sensor.tarExécuter le serveur de registre Docker et pousser les images :
docker run -d -p 5000:5000 --restart=always --name registry registry:2docker tag instana/agent:latest localhost:5000/instana-agentdocker push localhost:5000/instana-agentdocker tag instana/instana-agent-operator:latest localhost:5000/instana-agent-operatordocker push localhost:5000/instana-agent-operatordocker tag instana/k8sensor:latest localhost:5000/instana-k8sensordocker push localhost:5000/instana-k8sensor#Delete all images related to the agent: docker rmi -f <instanaAgentImageID> <k8SensorID> <operatorImagerId>Récupérez les graphiques « Pull Instana » et « Helm » à partir du dépôt suivant :
helm pull instana-agent --repo https://agents.instana.io/helm --untar instana-agentRemarque : vérifiez si le fichier de tableau « Helm » de l'agent Instana est présent dans votre répertoire actuel.Déployez l'agent « Instana » dans le cluster « Kubernetes ».
Remarque : les versions 2.0.0 et antérieures de l'agent Instana et des graphiques Helm ne disposent pas duinstana-agent/crdsdossier. Par conséquent, cettekubectl apply -f instana-agent/crdsétape n'est pas nécessaire.kubectl apply -f instana-agent/crds && helm upgrade --install --create-namespace \ --namespace instana-agent \ --set agent.key=<agentKey> \ --set agent.endpointHost=ingress-red-saas.instana.io \ --set agent.endpointPort=443 \ --set cluster.name='mip-back-test' \ --set zone.name='mip-gke-zone' \ --set k8s_sensor.deployment.enabled=true \ --set k8s_sensor.image.name=localhost:5000/instana-k8sensor \ --set k8s_sensor.image.tag=latest \ --set k8s_sensor.image.pullPolicy=IfNotPresent \ --set agent.image.name=localhost:5000/instana-agent \ --set agent.image.tag=latest \ --set agent.image.pullPolicy=IfNotPresent \ --set controllerManager.image.name=localhost:5000/instana-agent-operator \ --set controllerManager.image.tag=latest \ instana-agent instana-agent/Saisissez <agentKey>, puis modifiez les paramètres <agent.endpointHost>, <agent.endpointPort>, <k8_senosr.image.name> et < agent.image.name >. Remplacez également
instana-agent-1.2.61.tgzpar le dernier fichier de diagramme de l'agent Instana Helm présent dans votre répertoire.Vérifiez vos pods avec la commande suivante :
kubectl get all -n instana-agent
L'agent est installé. Pour plus d'informations sur les étapes suivantes, consultez la section « Que faire ensuite? ».
Installer à l'aide d'un opérateur dans un environnement isolé physiquement
Pour installer l'agent dans un environnement fermé par air à l'aide d'un opérateur, procédez comme suit :
Tirez les images suivantes.
docker pull containers.instana.io/instana/release/agent/static:latest docker pull icr.io/instana/k8sensor:latest docker pull icr.io/instana/instana-agent-operator:latestRéindexer les images extraites dans un registre d'images local.
docker tag <public-image> <local-registry-image>Transférer les images réétiquetées dans le registre d'images local.
docker push <local-registry-image>Créez un secret d'extraction d'image (secretDocker ) dans votre espace de noms cible 'Kubernetes
kubectl create secret -n instana-agent docker-registry local-registry-image-pull-secret \ --docker-server=<your_local_image_registry> \ --docker-username= # Replace with ARTIFACTORY_USERNAME \ --docker-password= # Replace with ARTIFACTORY_PASSWORDRécupérez le fichier « YAML » à l'adresse GitHub:
curl -L -o instana-agent-operator.yaml https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yamlRemplacer la référence de l'image par le registre privé. Par exemple, "
icr.io/instana/instana-agent-operator:2.1.8avec une image d'opérateur de registre privé.Appliquer la configuration pour déployer l'opérateur.
kubectl apply -f instana-agent-operator.yamlSi vous n'avez pas encore installé l'interface de ligne de commande (
ocCLI) d' OpenShift, vous pouvez la télécharger à partir de la page « Getting started with the OpenShift CLI » et modifier le compte de service afin qu'il ait accès au secret de récupération d'image que vous avez créé dans la section précédente :oc patch serviceaccount instana-agent-operator -p '{"imagePullSecrets": [{"name": "local-registry-image-pull-secret"}]}' -n instana-agentCréez un fichier agent.yaml et mettez à jour la ressource personnalisée de l'agent en fonction des versions d'images spécifiques :
apiVersion: instana.io/v1 kind: InstanaAgent metadata: name: instana-agent namespace: instana-agent spec: zone: name: # (optional) name of the zone of the host cluster: name: # cluster name. agent: image: name: # private registry static agent image. tag: # agent tag pullSecrets: - name: local-registry-image-pull-secret key: # fetch the download key from the Instana UI > Agents > Install Agent > Kubernetes Operator endpointHost: <your-ingress-endpoint> endpointPort: "443" 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: # private registry k8 sensor image. tag: # k8 sensor tagDéployer la ressource personnalisée :
$ kubectl apply -f agent.yaml- Veillez à ce que toutes les gousses démarrent correctement.
L'agent est installé. Pour plus d'informations sur les étapes suivantes, consultez la section « Que faire ensuite? ».
Installation de l'agent dans un environnement en ligne
Il est recommandé d'utiliser les méthodes suivantes pour installer l'agent Instana sur un cluster Kubernetes :
Si vous réinstallez l'agent, assurez-vous qu'il a été désinstallé proprement, notamment en supprimant tous les objets de niveau cluster de l'agent. Pour plus d'informations, consultez la section « Désinstallation de l'agent d' Instana » sur Kubernetes.
De nouvelles versions de l'Operator et du graphique « Helm » sont publiées assez régulièrement. Pour rester informé des dernières mises à jour concernant les corrections, les améliorations et les nouvelles fonctionnalités, assurez-vous d'utiliser la version actuelle de la carte « Operator » ou « Helm ».
Pour connaître la version actuelle de l'Operator ou du tableau « Helm », consultez les rubriques suivantes :
Installez-le à l'aide de l'opérateur
Vous pouvez utiliser l'opérateur « Kubernetes » fourni par Instana pour installer l'agent. Suivez ces étapes :
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 des agents, cliquez sur la tuile Kubernetes - Operator.
Déployez l'opérateur comme suit. La commande installe le dernier opérateur.
kubectl apply -f https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yamlUne fois cette commande exécutée, l'opérateur est opérationnel dans l'espace de noms
instana-agentet attend que la ressourceinstana-agentpersonnalisée soit créée.La
latestbalise associée à l'image de l'agent Operator d' Instana, disponible sur DockerHub et dans le registre Red Hat, n'est pas prise en charge.Pour obtenir une nouvelle version de l'Agent Operator d' Instana, effectuez la mise à jour vers la dernière version d' YAML, disponible sur la page « Versions d' GitHub » de l'Operator, comme indiqué précédemment.
Saisissez le nom du cluster et la zone d'agents (facultatif) 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 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 » :
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 droits nécessaires pour télécharger depuis l'Artifactory public Instana, ajoutez la clé de téléchargement comme
downloadKey: <your_download_key>suit : Voir l'exemple suivant :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 :
Utiliser un secret existant
Vous pouvez utiliser un secret existant de ce type
kubernetes.io/tlspour le chiffrement « TLS ». Mais vous devez fournir ces informationsagent.tls.secretNamedans le fichier de ressource personnalisée ` YAML `.Utiliser un certificat et une clé privée
Le certificat et la clé privée doivent être base64-encoded. Pour utiliser cette variante, ajoutez les 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.
Si vous souhaitez déployer l'agent hôte 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 de l'agent hôte statique, 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/staticFacultatif : 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 plus d'informations sur les valeurs possibles de l'environnement, voir 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 ».
- Facultatif : vous pouvez modifier manuellement le
instana-agent.customresource.yamlfichier pour ajouter des tolérances aux pods du gestionnaire de contrôleurs. Pour plus d'informations sur les options de configuration disponibles, consultez le fichier de configuration Canonical.
Appliquez le fichier de ressource personnalisée « YAML » :
kubectl apply -f instana-agent.customresource.yamlOù
instana-agent.customresource.yamlest le 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 installé. Pour plus d'informations sur les étapes suivantes, consultez la section « Que faire ensuite? ».
Pour mettre à jour l'agent, voir Mise à jour de l'installation d'un opérateur.
Installez-le à 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 de travail pouvant être utilisés pour planifier la charge de travail dans votre cluster à l'aide d'un « DaemonSet ».
Pour installer l'agent d' Instana s à l'aide d'un tableau « Helm », vous devez d'abord installer ou mettre à jour votre interface CLI helm locale vers la version 3.
Le graphique de l'agent Instana Helm prend en charge Red Hat OpenShift 4.x.
Pour installer l'agent à l'aide de la carte Helm, suivez les étapes suivantes :
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 des agents, cliquez sur la tuile Kubernetes - Helm chart.
Saisissez le nom du cluster et (facultativement) la zone d'agents dont vous voulez que le cluster fasse partie.
Le nom de la grappe (
<your_cluster_name>) est le nom personnalisé de la grappe surveillée par ce daemonset.La zone d'agent (
<your_zone_name>) permet de personnaliser le regroupement des zones qui s'affiche 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 :
helm install instana-agent --repo https://agents.instana.io/helm \ --namespace instana-agent \ --create-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-agentVous pouvez également enregistrer l' values.yaml ation localement et veiller à remplir manuellement les champs obligatoires. Exécutez ensuite la commande suivante :
helm install instana-agent --repo https://agents.instana.io/helm \ --namespace instana-agent \ --create-namespace \ -f values.yaml instana-agentModifiez 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 :Si vous souhaitez déployer l'agent hôte statique, définissez l'indicateur "
--set agent.image.name=containers.instana.io/instana/release/agent/static.Si vous souhaitez configurer le chiffrement de type « TLS » pour le point de terminaison de l'agent, utilisez un secret existant ou un certificat et une clé privée :
Utiliser 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 "
helm installavec les paramètres supplémentaires suivants :--set 'agent.tls.certificate=<YOUR_CERTIFICATE_BASE64_ENCODED>' --set 'agent.tls.key=<YOUR_PRIVATE_KEY_BASE64_ENCODED>'Remarque : siagent.tls.secretNameest défini, alorsagent.tls.certificateetagent.tls.keysont ignorés.
Si votre environnement Kubernetes nécessite des proxys différents pour accéder au référentiel Helm et pour se connecter au backend Instana, vous pouvez configurer des paramètres de proxy distincts lors de l'installation. Pour plus d'informations sur les options de configuration, consultez la section « Proxys distincts pour le référentiel et le backend Instana ».
Copiez et exécutez le code de déploiement de l'agent.
L'agent est installé. Pour plus d'informations sur les étapes suivantes, consultez la section « Que faire ensuite? ».
Pour mettre à jour l'agent, voir Mise à jour de l'installation d'un opérateur.