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.
Inhalt
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.
Die AWS Command Line Interface (CLI). Weitere Informationen finden Sie unter Installieren oder Aktualisieren der AWS Command Line Interface im Referenzhandbuch für AWS Command Line Interface.
Der Helm-Paketmanager. Weitere Informationen finden Sie unter Installieren von Helm
auf der Helm-Website. Das
kubectl-Befehlszeilen-Tool. Weitere Informationen finden Sie unter Installieren von kubectlauf der Kubernetes-Website. Die Abhängigkeit vom Linux-Befehl
make. Weitere Informationen finden Sie im folgenden Blogbeitrag: Einführung zum Linux-Befehl „make“: Installation und Verwendung. Führen Sie beispielsweise einen der folgenden Schritte aus: Verwenden Sie für Debian-basierte Distributionen wie Ubuntu den folgenden Befehl:
sudo apt-get install makeVerwenden Sie für RPM-basierte Distributionen wie CentOS den folgenden Befehl:
sudo yum install make
- 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_KUBECONTEXTverwendet, 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/configverweist. 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.
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
ServiceAccountden Wertaws-network-flow-monitor-agent-service-accountan.Namespace: Geben Sie für
namespaceden Wertamazon-network-flow-monitoran.Bereitstellung temporärer Anmeldeinformationen: Wenn Sie Berechtigungen konfigurieren, nachdem Sie Agenten-Pods für Network Flow Monitor bereitgestellt und den
ServiceAccountmit 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 vonDaemonSetdurchführen. Verwenden Sie z. B. einen Befehl wie diesen:kubectl rollout restart daemonset -n amazon-network-flow-monitor aws-network-flow-monitor-agent
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:
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)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.