Installazione degli agenti per le istanze Kubernetes autogestite - Amazon CloudWatch

Installazione degli agenti per le istanze Kubernetes autogestite

Segui la procedura riportata in questa sezione per installare gli agenti Network Flow Monitor per carichi di lavoro su cluster Kubernetes autogestiti. Dopo aver completato i passaggi, i pod degli agenti di Network Flow Monitor verranno eseguiti su tutti i nodi del cluster Kubernetes autogestiti.

Se utilizzi Amazon Elastic Kubernetes Service (Amazon EKS), la procedura di installazione da seguire è riportata nella sezione seguente: Installazione del componente aggiuntivo EKS AWS Network Flow Monitor Agent.

Prima di iniziare

Prima di iniziare il processo di installazione, segui i passaggi di questa sezione per assicurarti che il tuo ambiente sia configurato per installare correttamente gli agenti sui cluster Kubernetes corretti.

Verificare che la versione di Kubernetes sia supportata

L'installazione dell'agente Network Flow Monitor richiede la versione 1.25 di Kubernetes o una versione più recente.

Verificare di aver installato gli strumenti necessari

Gli script utilizzati per questo processo di installazione richiedono l'installazione dei seguenti strumenti. Se gli strumenti non sono ancora stati installati, consulta i collegamenti forniti per ulteriori informazioni.

  • La AWS Command Line Interface (CLI). Per ulteriori informazioni, consulta Installing or updating to the latest version of the AWS Command Line Interface nella documentazione di riferimento della AWS Command Line Interface.

  • Il gestore di pacchetti Helm. Per ulteriori informazioni, consulta Installing Helm sul sito web di Helm.

  • Lo strumento a riga di comando kubectl; Per ulteriori informazioni, consulta Install kubectl sul sito web di Kubernetes.

  • La dipendenza dei comandi make di Linux. Per ulteriori informazioni, consulta il seguente post del blog: Intro to make Linux Command: Installation and Usage. Ad esempio, esegui una delle seguenti operazioni:

    • Per distribuzioni basate su Debian, come Ubuntu, utilizza il seguente comando: sudo apt-get install make

    • Per distribuzioni basate su RPM, come CentOS, utilizza il seguente comando: sudo yum install make

Verificare di disporre di variabili di ambiente KubeConfig valide e correttamente configurate

L'installazione dell'agente Network Flow Monitor utilizza lo strumento di gestione dei pacchetti Helm, che utilizza la variabile kubeconfig $HELM_KUBECONTEXT per determinare i cluster Kubernetes di destinazione con cui lavorare. Inoltre, tieni presente che quando Helm esegue gli script di installazione, per impostazione predefinita fa riferimento al file ~/.kube/config standard. È possibile modificare le variabili dell'ambiente di configurazione, utilizzare un file di configurazione diverso (mediante aggiornamento di $KUBECONFIG) o definire il cluster di destinazione con cui si desidera lavorare (aggiornando $HELM_KUBECONTEXT).

Creazione di un namespace Kubernetes di Network Flow Monitor

L'applicazione Kubernetes dell'agente Network Flow Monitor installa le proprie risorse in un namespace specifico. Il namespace deve esistere affinché l'installazione abbia successo. Per garantire che il namespace richiesto sia disponibile, è possibile eseguire una delle seguenti operazioni:

  • Crea il namespace predefinito, amazon-network-flow-monitor, prima di iniziare.

  • Crea uno namespace diverso, quindi definiscilo nella variabile di ambiente $NAMESPACE quando esegui l'installazione per creare destinazioni.

Download dei grafici Helm e installazione degli agenti

È possibile scaricare i grafici Helm dell'agente Network Flow Monitor dall'archivio pubblico AWS utilizzando il comando seguente. Innanzitutto, assicurati di autenticarti con il tuo account GitHub.

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

Nella directory ./charts/amazon-network-flow-monitor-agent, puoi trovare i grafici Helm dell'agente Network Flow Monitor e Makefile che contengono le destinazioni make di installazione utilizzate per l'installazione degli agenti. Gli agenti per Network Flow Monitor vengono installati utilizzando la seguente destinazione Makefile: helm/install/customer

Se desideri puoi personalizzare l'installazione, ad esempio nel modo seguente:

# 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

Per verificare che i pod delle applicazioni Kubernetes per gli agenti Network Flow Monitor siano stati creati e distribuiti correttamente, verifica che lo stato sia Running. Puoi controllare lo stato degli agenti eseguendo il seguente comando: kubectl get pods -o wide -A | grep amazon-network-flow-monitor

Configurazione delle autorizzazioni per consentire agli agenti di fornire metriche

Dopo aver installato gli agenti per Network Flow Monitor, è necessario consentire agli agenti di inviare le metriche di rete alle API di importazione di Network Flow Monitor. Gli agenti in Network Flow Monitor devono disporre dell'autorizzazione per accedere alle API di importazione di Network Flow Monitor in modo da poter fornire le metriche del flusso di rete che hanno raccolto per ogni istanza. Concedi questo accesso implementando ruoli IAM per gli account di servizio (IRSA).

Per consentire agli agenti di fornire metriche di rete a Network Flow Monitor, segui i passaggi riportati in questa sezione.

  1. Implementazione dei ruoli IAM per gli account di servizio

    I ruoli IAM per gli account di servizio (IRSA) forniscono la possibilità di gestire le credenziali per le applicazioni, analogamente al modo in cui i profili di istanza Amazon EC2 forniscono le credenziali alle istanze Amazon EC2. L'implementazione degli IRSA è il metodo consigliato per fornire tutte le autorizzazioni richieste dagli agenti di Network Flow Monitor per accedere correttamente alle API di importazione di Network Flow Monitor. Per ulteriori informazioni, consulta IAM roles for service accounts nella Guida per l'utente di Amazon EKS.

    Quando configuri gli IRSA per gli agenti Network Flow Monitor, utilizza le seguenti informazioni:

    • ServiceAccount: quando definisci la policy di attendibilità dei ruoli IAM, specifica ServiceAccount per aws-network-flow-monitor-agent-service-account.

    • Namespace: per namespace, specifica amazon-network-flow-monitor.

    • Implementazione delle credenziali temporanee: quando configuri le autorizzazioni dopo aver implementato i pod degli agenti di Network Flow Monitor, aggiornando ServiceAccount con il tuo ruolo IAM, Kubernetes non implementa le credenziali del ruolo IAM. Per garantire che gli agenti di Network Flow Monitor acquisiscano le credenziali del ruolo IAM che hai specificato, devi eseguire un riavvio di DaemonSet. Ad esempio, utilizza un comando di questo genere:

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

  2. Verifica del corretto accesso alle API di importazione di Network Flow Monitor da parte dell'agente Network Flow Monitor

    È possibile verificare che la configurazione per gli agenti funzioni correttamente utilizzando i log HTTP 200 per i pod degli agenti di Network Flow Monitor. Innanzitutto, cerca un pod di agenti Network Flow Monitor, quindi cerca nei file di log per trovare le richieste HTTP 200 riuscite. Ad esempio, puoi eseguire le operazioni seguenti:

    1. Individua il nome di un pod dell'agente Network Flow Monitor. Ad esempio, puoi utilizzare il seguente comando:

      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. Archivia tutti i log HTTP relativi al nome del pod che hai individuato. Se hai cambiato il NAMESPACE, assicurati di utilizzare quello nuovo.

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

    Se l'accesso è stato concesso correttamente, dovresti visualizzare voci di log simili alle seguenti:

    ... {"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}

    Tieni presente che l'agente Network Flow Monitor pubblica report sul flusso di rete ogni 30 secondi, richiamando le API di importazione di Network Flow Monitor.