Installieren von Agenten für selbstverwaltete Kubernetes-Instances - Amazon CloudWatch

Installieren von Agenten für selbstverwaltete Kubernetes-Instances

Führen Sie die Schritte in diesem Abschnitt aus, um Network-Flow-Monitor-Agenten für Workloads auf selbstverwalteten Kubernetes-Clustern zu installieren. Nachdem Sie die Schritte abgeschlossen haben, werden die Agenten-Pods für Network Flow Monitor auf all Ihren selbstverwalteten Kubernetes-Clusterknoten ausgeführt.

Wenn Sie Amazon Elastic Kubernetes Service (Amazon EKS) verwenden, finden Sie die entsprechenden Installationsschritte im folgenden Abschnitt: Installieren des Add-Ons „AWS Network Flow Monitor Agent“ für EKS.

Bevor Sie beginnen

Bevor Sie mit der Installation beginnen, führen Sie die Schritte in diesem Abschnitt aus, um sicherzustellen, dass Ihre Umgebung für die erfolgreiche Installation von Agenten auf den richtigen Kubernetes-Clustern eingerichtet ist.

Sicherstellen, dass Ihre Version von Kubernetes unterstützt wird

Für die Installation des Network-Flow-Monitor-Agenten brauchen Sie mindestens Kubernetes Version 1.25.

Sicherstellen, dass Sie die erforderlichen Tools installiert haben

Die Skripts, die Sie für diesen Installationsvorgang verwenden, erfordern die folgenden Tools. Falls Sie die Tools noch nicht installiert haben, finden Sie unter den bereitgestellten Links weitere Informationen.

Sicherstellen, dass Sie über gültige, korrekt konfigurierte KubeConfig-Umgebungsvariablen verfügen

Bei der Installation des Network-Flow-Monitor-Agenten wird der Helm-Paketmanager genutzt, der die kubeconfig-Variable $HELM_KUBECONTEXT verwendet, um die Kubernetes-Zielcluster zu bestimmen, mit denen gearbeitet werden soll. Beachten Sie außerdem, dass Helm bei der Ausführung von Installationsskripten standardmäßig auf die Standarddatei ~/.kube/config verweist. Sie können die Umgebungsvariablen der Konfiguration ändern, um eine andere Konfigurationsdatei zu verwenden (durch Aktualisierung von $KUBECONFIG) oder um den Zielcluster zu definieren, mit dem Sie arbeiten möchten (durch Aktualisierung von $HELM_KUBECONTEXT).

Erstellen eines Kubernetes-Namespace für Network Flow Monitor

Die Ressourcen der Kubernetes-Anwendung des Network-Flow-Monitor-Agenten werden in einem bestimmten Namespace installiert. Der Namespace muss vorhanden sein, damit die Installation erfolgreich ist. Um sicherzustellen, dass der erforderliche Namespace vorhanden ist, können Sie einen der folgenden Schritte ausführen:

  • Erstellen Sie den Standard-Namespace amazon-network-flow-monitor, bevor Sie beginnen.

  • Erstellen Sie einen anderen Namespace und definieren Sie ihn in der Umgebungsvariablen $NAMESPACE, wenn Sie die Installation ausführen, um Ziele zu erstellen.

Herunterladen von Helm-Charts und Installieren von Agenten

Sie können die Helm-Charts des Network-Flow-Monitor-Agenten mithilfe des folgenden Befehls aus dem öffentlichen AWS-Repository herunterladen. Achten Sie darauf, sich zuerst mit Ihrem GitHub-Konto zu authentifizieren.

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

Im Verzeichnis ./charts/amazon-network-flow-monitor-agent finden Sie die Helm-Charts und das Makefile des Network-Flow-Monitor-Agenten, die die make-Ziele der Installation enthalten, die Sie für die Installation von Agenten verwenden. Sie installieren Agenten für Network Flow Monitor mithilfe des folgenden Makefile-Ziels: helm/install/customer

Sie können die Installation bei Bedarf anpassen. Zum Beispiel folgendermaßen:

# 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

Um die erfolgreiche Erstellung und Bereitstellung der Kubernetes-Anwendungs-Pods für die Network-Flow-Monitor-Agenten zu verifizieren, prüfen Sie, ob ihr Status Running lautet. Sie können den Status der Agenten überprüfen, indem Sie den folgenden Befehl ausführen: kubectl get pods -o wide -A | grep amazon-network-flow-monitor

Konfigurieren von Berechtigungen, damit Agenten Metriken liefern

Nachdem Sie Agenten für Network Flow Monitor installiert haben, müssen Sie dafür sorgen, dass sie Netzwerkmetriken an die Network-Flow-Monitor-Aufnahme-APIs senden können. Agenten in Network Flow Monitor müssen die Berechtigung haben, die Network-Flow-Monitor-Aufnahme-APIs aufzurufen, um Netzwerk-Flow-Metriken zu liefern, die sie für jede Instance erfasst haben. Sie gewähren diesen Zugriff, indem Sie IAM-Rollen für Servicekonten implementieren.

Folgen Sie den Schritten in diesem Abschnitt, um Agenten zu ermöglichen, Netzwerkmetriken an Network Flow Monitor zu senden.

  1. Implementieren von IAM-Rollen für Servicekonten

    IAM-Rollen für Servicekonten bieten die Möglichkeit, Anmeldeinformationen für Ihre Anwendungen zu verwalten, ähnlich wie Amazon-EC2-Instance-Profile Anmeldeinformationen für Amazon-EC2-Instances bereitstellen. Die Implementierung von IAM-Rollen für Servicekonten ist die empfohlene Methode, um alle Berechtigungen bereitzustellen, die Network-Flow-Monitor-Agenten für den erfolgreichen Zugriff auf die Network-Flow-Monitor-Aufnahme-APIs benötigen. Weitere Informationen finden Sie unter IAM-Rollen für Servicekonten im Benutzerhandbuch für Amazon EKS.

    Verwenden Sie die folgenden Informationen, wenn Sie IAM-Rollen für Servicekonten für Network-Flow-Monitor-Agenten einrichten:

    • ServiceAccount: Wenn Sie Ihre Vertrauensrichtlinie für IAM-Rollen festlegen, geben Sie für ServiceAccount den Wert aws-network-flow-monitor-agent-service-account an.

    • Namespace: Geben Sie für namespace den Wert amazon-network-flow-monitor an.

    • Bereitstellung temporärer Anmeldeinformationen: Wenn Sie Berechtigungen konfigurieren, nachdem Sie Agenten-Pods für Network Flow Monitor bereitgestellt und den ServiceAccount mit Ihrer IAM-Rolle aktualisiert haben, stellt Kubernetes keine Anmeldeinformationen für die IAM-Rolle bereit. Damit die Network-Flow-Monitor-Agenten die angegebenen Anmeldeinformationen für die IAM-Rolle erhalten, müssen Sie einen Neustart von DaemonSet durchführen. Verwenden Sie z. B. einen Befehl wie diesen:

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

  2. Bestätigen, dass der Network-Flow-Monitor-Agent auf die Network-Flow-Monitor-Aufnahme-APIs zugreifen kann

    Sie können überprüfen, ob Ihre Konfiguration für Agenten ordnungsgemäß funktioniert. Verwenden Sie dazu die HTTP-200-Protokolle für Agenten-Pods von Network Flow Monitor. Suchen Sie zunächst nach einem Agenten-Pod für Network Flow Monitor und suchen Sie dann in den Protokolldateien nach erfolgreichen HTTP-200-Anfragen. Sie können z. B. Folgendes tun:

    1. Suchen Sie den Namen eines Agenten-Pods für Network Flow Monitor. Sie können z. B. den folgenden Befehl verwenden:

      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. Suchen Sie mit dem grep-Befehl in allen HTTP-Protokollen nach dem Pod-Namen, den Sie gefunden haben. Wenn Sie den NAMESPACE geändert haben, müssen Sie den neuen verwenden.

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

    Wenn der Zugriff gewährt wurde, sollten Sie Protokolleinträge wie diese sehen:

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

    Beachten Sie, dass der Network-Flow-Monitor-Agent alle 30 Sekunden die Network-Flow-Monitor-Aufnahme-APIs aufruft, um Netzwerk-Flow-Berichte zu veröffentlichen.