Installer des agents pour les instances Kubernetes autogérées - Amazon CloudWatch

Installer des agents pour les instances Kubernetes autogérées

Suivez les étapes de cette section pour installer des agents Network Flow Monitor pour les charges de travail sur des clusters Kubernetes autogérés. Une fois les étapes terminées, les pods d’agent Network Flow Monitor seront exécutés sur tous vos nœuds de cluster Kubernetes autogérés.

Si vous utilisez Amazon Elastic Kubernetes Service (Amazon EKS), les étapes d’installation à suivre se trouvent dans la section suivante : Installez le module complémentaire Agent AWS Network Flow Monitor.

Avant de commencer

Avant de commencer le processus d’installation, suivez les étapes de cette section pour vous assurer que votre environnement est configuré pour réussir l’installation des agents sur les bons clusters Kubernetes.

Assurez-vous que votre version de Kubernetes est prise en charge

L’installation de l’agent Network Flow Monitor nécessite la version 1.25 de Kubernetes ou une version plus récente.

Assurez-vous que vous avez installé les outils requis

Les scripts que vous utilisez pour ce processus d’installation nécessitent l’installation des outils suivants. Si ces outils ne sont pas encore installés, consultez les liens fournis pour plus d’informations.

  • L’AWS Command Line Interface (CLI). Pour plus d’informations, consultez Installation ou mise à jour vers la dernière version de l’AWS Command Line Interface dans le Guide de référence de l’AWS Command Line Interface.

  • Le gestionnaire de packages Helm. Pour plus d’informations, consultez Installation de Helm sur le site web de Helm.

  • L’outil de ligne de commande kubectl. Pour plus d’informations, consultez Installer kubectl sur le site web de Kubernetes.

  • La dépendance de la commande Linux make. Pour plus d’informations, consultez l’article de blog suivant : Intro to make Linux Command: Installation and Usage. Par exemple, faites l’une des choses suivantes :

    • Pour les distributions basées sur Debian, comme Ubuntu, utilisez la commande suivante : sudo apt-get install make

    • Pour les distributions basées sur des RPM, comme CentOS, utilisez la commande suivante : sudo yum install make

Assurez-vous que vous disposez de variables d’environnement KubeConfig valides et correctement configurées

L’installation de l’agent Network Flow Monitor fait appel à l’outil de gestion des packages Helm, qui utilise la variable kubeconfig, $HELM_KUBECONTEXT, pour déterminer les clusters Kubernetes cibles avec lesquels travailler. Sachez également que lorsque Helm exécute des scripts d’installation, il fait référence, par défaut, au fichier standard ~/.kube/config. Vous pouvez modifier les variables d’environnement de configuration, pour utiliser un fichier de configuration différent (en mettant à jour $KUBECONFIG) ou pour définir le cluster cible avec lequel vous voulez travailler (en mettant à jour $HELM_KUBECONTEXT).

Créez un espace de noms Kubernetes de l’agent Network Flow Monitor

L’application Kubernetes de l’agent Network Flow Monitor installe ses ressources dans un espace de noms spécifique. L’espace de noms doit exister pour que l’installation réussisse. Pour vous assurer que l’espace de noms requis est en place, vous pouvez effectuer l’une des opérations suivantes :

  • Créez l’espace de noms par défaut, amazon-network-flow-monitor, avant de commencer.

  • Créez un espace de noms différent, puis définissez-le dans la variable d’environnement $NAMESPACE lorsque vous exécutez l’installation pour créer des cibles.

Téléchargez les Charts de Helm et installez les agents

Vous pouvez télécharger les Charts de Helm de l’agent Network Flow Monitor à partir du référentiel public AWS à l’aide de la commande suivante. Assurez-vous d’abord de vous authentifier avec votre compte GitHub.

git clone https://github.com/aws/network-flow-monitor-agent.git

Dans le répertoire ./charts/amazon-network-flow-monitor-agent, vous trouverez les Charts Helm de l’agent Network Flow Monitor et Makefile qui contiennent les cibles make d’installation que vous utilisez pour installer les agents. Vous installez les agents pour Network Flow Monitor en utilisant la cible Makefile suivante : helm/install/customer

Vous pouvez personnaliser l’installation si vous le souhaitez, par exemple en procédant comme suit :

# Overwrite the kubeconfig files to use KUBECONFIG=<MY_KUBECONFIG_ABS_PATH> make helm/install/customer # Overwrite the Kubernetes namespace to use NAMESPACE=<MY_K8S_NAMESPACE> make helm/install/customer

Pour vérifier que les pods d’application Kubernetes pour les agents Network Flow Monitor ont été créés et déployés, vérifiez que leur état est Running. Vous pouvez vérifier l’état des agents en exécutant la commande suivante : kubectl get pods -o wide -A | grep amazon-network-flow-monitor

Configurez les autorisations permettant aux agents de fournir des métriques

Après avoir installé des agents pour Network Flow Monitor, vous devez permettre aux agents d’envoyer des métriques de réseau aux API d’ingestion de Network Flow Monitor. Les agents de Network Flow Monitor doivent avoir l’autorisation d’accéder aux API d’ingestion de Network Flow Monitor afin de pouvoir fournir les métriques de flux réseau qu’ils ont collectées pour chaque instance. Vous accordez cet accès en implémentant les rôles IAM pour les comptes de service (IRSA).

Pour permettre aux agents de fournir des métriques de réseau à Network Flow Monitor, suivez les étapes de cette section.

  1. Implémenter les rôles IAM pour les comptes de service

    Les rôles IAM pour les comptes de service offrent une capacité de gestion des informations d’identification à utiliser pour les applications, de la même façon que les profils d’instance Amazon EC2 fournissent des informations d’identification aux instances EC2. L’implémentation de l’IRSA est la méthode recommandée pour fournir toutes les autorisations requises par les agents Network Flow Monitor pour accéder avec succès aux API d’ingestion de Network Flow Monitor. Pour plus d’informations, consultez Rôles IAM pour les comptes de service dans le Guide de l’utilisateur Amazon EKS.

    Lorsque vous configurez l’IRSA pour les agents Network Flow Monitor, utilisez les informations suivantes :

    • ServiceAccount : lorsque vous définissez votre politique d’approbation des rôles IAM, pour ServiceAccount, spécifiez aws-network-flow-monitor-agent-service-account.

    • Espace de noms : pour namespace, spécifiez amazon-network-flow-monitor.

    • Déploiement d’informations d’identification temporaires : lorsque vous configurez les autorisations après avoir déployé les pods des agents Network Flow Monitor, en mettant à jour le ServiceAccount avec votre rôle IAM, Kubernetes ne déploie pas les informations d’identification du rôle IAM. Pour que les agents Network Flow Monitor acquièrent les informations d’identification du rôle IAM que vous avez spécifiées, vous devez effectuer un redémarrage de DaemonSet. Par exemple, utilisez une commande comme la suivante :

      kubectl rollout restart daemonset -n amazon-network-flow-monitor aws-network-flow-monitor-agent

  2. Vérifier que l’agent Network Flow Monitor parvient à accéder aux API d’ingestion de Network Flow Monitor

    Vous pouvez vérifier que votre configuration pour les agents fonctionne correctement en utilisant les journaux HTTP 200 pour les pods d’agent Network Flow Monitor. Commencez par rechercher un pod d’agent Network Flow Monitor, puis parcourez les fichiers journaux pour trouver les requêtes HTTP 200 réussies. Par exemple, vous pouvez effectuer les opérations suivantes :

    1. Recherchez le nom d’un pod d’agent Network Flow Monitor. Par exemple, vous pouvez utiliser la commande suivante :

      RANDOM_AGENT_POD_NAME=$(kubectl get pods -o wide -A | grep amazon-network-flow-monitor | grep Running | head -n 1 | tr -s ' ' | cut -d " " -f 2)
    2. Effectuez un grep de tous les journaux HTTP pour trouver le nom du pod que vous avez localisé. Si vous avez modifié le NAMESPACE, assurez-vous d’utiliser le nouveau.

      NAMESPACE=amazon-network-flow-monitor kubectl logs $RANDOM_AGENT_POD_NAME -\-namespace ${NAMESPACE} | grep HTTP

    Si l’accès a été accordé, vous devriez voir des entrées de journal similaires à celles qui suivent :

    ... {"level":"INFO","message":"HTTP request complete","status":200,"target":"amzn_nefmon::reports::publisher_endpoint","timestamp":1737027525679} {"level":"INFO","message":"HTTP request complete","status":200,"target":"amzn_nefmon::reports::publisher_endpoint","timestamp":1737027552827}

    Notez que l’agent Network Flow Monitor diffuse des rapports sur les flux réseau toutes les 30 secondes, en appelant les API d’ingestion de Network Flow Monitor.