August 9, 2023

00 Min. Lesezeit

Einleitung

Kubernetes-Monitoring ist entscheidend für die Gewährleistung der optimalen Leistung, Verfügbarkeit und Zuverlässigkeit Ihrer containerisierten Anwendungen, die in einem Kubernetes-Cluster ausgeführt werden. Angesichts der Komplexität und des Umfangs von Kubernetes-Bereitstellungen wird effektives Monitoring unerlässlich, um Probleme schnell zu erkennen und zu beheben. Datadog, eine beliebte Monitoring-Plattform, bietet umfassende Kubernetes-Monitoring-Funktionen. Sie bietet Echtzeit-Transparenz über den Zustand und die Leistung Ihres Clusters, einschließlich Metriken, Logs und Traces. Mit Datadog können Sie Einblicke in die Ressourcennutzung, Anwendungsleistung und Container-Orchestrierung gewinnen. Dies ermöglicht proaktive Fehlerbehebung, effiziente Ressourcenzuweisung und effektive Kapazitätsplanung, gewährleistet den reibungslosen Betrieb Ihrer Kubernetes-Umgebung und fördert die Skalierbarkeit und Stabilität von Anwendungen.

1. Voraussetzung.

. Datadog Agent auf EKS installieren

• Datadog Cluster Agent installieren

• Berechtigungen und Secrets konfigurieren

a. Erstellen von ClusterRole, ClusterRoleBinding und ServiceAccount, um dem Cluster Agent und dem Datadog Agent die Berechtigung zum Sammeln von Metriken zu erteilen.

• Erstellen eines Kubernetes Secrets zur Bereitstellung Ihres Datadog API-Schlüssels

• Bereitstellen des datadog-cluster-agent und datadog-agent auf EKS mithilfe von YAML-Dateien. (datadog-cluster-agent.yaml, datadog-agent.yaml.)

Datadog Agent auf EKS installieren:-

Der Datadog Agent ist eine kostenlose Software, die es Ihnen ermöglicht, Ihre gesamte Infrastruktur an einem Ort zu überwachen und zu verwalten, indem sie Metriken, verteilte Traces und Logs von jedem Ihrer Knoten sammelt und meldet.

Der Agent sammelt und liefert automatisch Ressourcenmessungen (wie CPU, Arbeitsspeicher und Netzwerkverkehr) von Ihren Knoten, unabhängig von der zugrunde liegenden Infrastrukturplattform, zusätzlich zur Erfassung von Telemetriedaten von Kubernetes, Docker und anderen Infrastrukturtechnologien.

Datadog Cluster Agent installieren:-

Indem er als Proxy zwischen dem API-Server und den knotenbasierten Agents fungiert, reduziert der Datadog Cluster Agent die Last auf dem Kubernetes API-Server beim Sammeln von Cluster-weiten Daten. Er erhöht zudem die Sicherheit, indem er die für die knotenbasierten Agents erforderlichen Berechtigungen senkt, und ermöglicht die automatische Skalierung von Kubernetes-Workloads anhand jeder von Datadog erfassten Metrik.

Berechtigungen und Secrets konfigurieren:-

Die folgenden Manifeste können bereitgestellt werden, um die Berechtigungen zu erstellen, die der knotenbasierte Agent und der Cluster Agent benötigen, um in Ihrem Kubernetes-Cluster zu funktionieren, falls dieser eine rollenbasierte Zugriffssteuerung implementiert. Die folgenden Manifeste stellen zwei Sätze von Berechtigungen bereit: einen für den knotenbasierten Agent und einen für den Cluster Agent. Der Cluster Agent verfügt über spezifische Rechte zum Sammeln von Cluster-weiten Metriken und Kubernetes-Ereignissen über die Kubernetes API. Die Bereitstellung dieser beiden Manifeste führt für jeden Agent-Typ zur Erstellung einer ClusterRole, eines ClusterRoleBinding und eines ServiceAccount.

2. Aufgaben.

Die URL des Github-Repositorys finden Sie unten. In diesem Repository ist die Konfigurationsdatei enthalten. Sie müssen diese Datei auf dem EKS-Cluster ausführen, damit der knotenbasierte Agent und der Cluster Agent ihre Aufgaben erledigen können.

https://github.com/frankisinfotech/Datadog-monitoring

kubectl create -f https://raw.githubusercontent.com/DataDog/datadog-agent/master/Dockerfiles/manifests/cluster-agent/cluster-agent-rbac.yaml

kubectl create -f https://raw.githubusercontent.com/DataDog/datad og-agent/master/Dockerfiles/manifests/cluster-agent/rbac.yaml

Erstellen Sie als Nächstes ein Kubernetes-Secret, damit Sie dem Agenten Ihren Datadog API-Schlüssel übergeben können, ohne ihn in Ihre Deployment-Manifeste aufnehmen zu müssen.

kubectl create secret generic datadog-secret — from-literal api-key=”<YOUR_API_KEY>”

Um eine sichere Agent-zu-Agent-Kommunikation zwischen dem Cluster Agent und den knotenbasierten Agenten zu ermöglichen, erstellen Sie ein geheimes Token wie folgt:

Erstellen Sie eine 32-Bit lange Zeichenkette über den untenstehenden Link und verwenden Sie diese dann im untenstehenden Befehl.

echo -n <32 String long password> | base64

Verwenden Sie das resultierende Token, um ein Kubernetes-Secret zu erstellen, das beide Agenten-Typen zur gegenseitigen Authentifizierung verwenden werden:

Verwenden Sie das Token, das mit dem obigen Befehl generiert wurde, im folgenden Befehl.

Kubectl create secret generic datadog-auth-token –from literal=token=<TOKEN_FROM_PREVIOUS_STEP>

Den Cluster Agent bereitstellen:-

Nachdem Sie Kubernetes-Secrets mit Ihrem Datadog API-Schlüssel und einem Authentifizierungstoken erstellt haben, sind Sie nun bereit, den Cluster Agent bereitzustellen. Kopieren Sie die Manifestdatei vom oben genannten Github-Repo-Link auf Ihren lokalen Computer und speichern Sie sie dort als datadog-cluster-agent.yaml:

Nachdem Sie die Datei lokal kopiert haben, müssen Sie sie auf dem Cluster ausführen, damit der Cluster Agent auf dem Knoten bereitgestellt wird. Verwenden Sie dazu den folgenden Befehl, um den Agenten bereitzustellen.

kubectl apply -f datadog-cluster-agent.yaml

Für den Cluster Agent erstellt das Manifest ein Kubernetes-Deployment und einen Service. Der Service bietet einen konsistenten Endpunkt innerhalb des Clusters, sodass knotenbasierte Agenten mit dem Cluster Agent kommunizieren können, unabhängig davon, wo dieser läuft. Das Deployment stellt wiederum sicher, dass immer ein einziger Cluster Agent irgendwo im Cluster ausgeführt wird. Es ist zu beachten, dass der Datadog API-Schlüssel und das Authentifizierungstoken nicht im Klartext im Manifest selbst gespeichert, sondern über Kubernetes-Secrets abgerufen werden.

Überprüfen Sie den Status des Cluster Agents mit dem folgenden Befehl:

kubectl get pods -l app=datadog-cluster-agent

Den knotenbasierten Agent bereitstellen:

Der knotenbasierte Datadog Agent lässt sich einfach in Ihrem Cluster installieren, sobald die erforderlichen Berechtigungen und Secrets generiert wurden. DD_CLUSTER_AGENT_ENABLED (auf true gesetzt) und DD_CLUSTER_AGENT_AUTH_TOKEN (mithilfe von Kubernetes Secrets gesetzt, ähnlich wie im Cluster Agent Manifest) sind zwei zusätzliche Umgebungsvariablen, die in dem Manifest festgelegt werden, das dem normalen Kubernetes Agent Manifest folgt. Speichern Sie das folgende Manifest als datadog-agent.yaml und kopieren Sie es in eine lokale Datei.

Ähnlich wie beim vorherigen Cluster Agent müssen Sie die datadog-agent-Datei in den lokalen Speicher kopieren, bevor Sie den Datadog Agent im Cluster bereitstellen. Sobald der knotenbasierte Agent als DaemonSet bereitgestellt ist, verwenden Sie den folgenden Befehl, um sicherzustellen, dass eine Instanz des Agents auf jedem Knoten im Cluster ausgeführt wird.

kubectl apply -f -f datadog-agent.yaml

Um zu überprüfen, ob der knotenbasierte Datadog Agent in Ihrem Cluster ausgeführt wird, führen Sie den folgenden Befehl aus:

kubectl get daemonset datadog-agent

Nach dieser gesamten Konfiguration werden Sie die Ressourcen und Metriken in der Datadog-Konsole sehen können.

Tauchen Sie ein in die Metriken

Die Ressourcenmessungen und Ereignisse aus Ihrem Cluster sollten in Datadog gestreamt werden, nachdem der Datadog Agent erfolgreich bereitgestellt wurde. Das integrierte Kubernetes-Dashboard ermöglicht es Ihnen, die bereits gesammelten Daten anzuzeigen.

Sie erinnern sich vielleicht aus einem früheren Teil dieser Reihe, dass ein optionales Cluster-Add-on namens kube-state-metrics spezifische Metriken auf Clusterebene bietet, insbesondere die Anzahl von Kubernetes-Objekten wie die Anzahl der gewünschten, verfügbaren und nicht verfügbaren Pods. Wenn Sie feststellen, dass diese Informationen im Dashboard fehlen, weist dies darauf hin, dass der kube-state-metrics-Dienst noch nicht installiert wurde. Sie müssen kube-state-metrics lediglich in Ihrem Cluster bereitstellen, um diese Statistiken zusätzlich zu den bereits vom Agenten erfassten Ressourcenmetriken auf niedrigerer Ebene zu sammeln.

kube-state-metrics bereitstellen

Sie können das Add-on und die zugehörigen Ressourcen schnell bereitstellen, indem Sie eine Reihe von Manifesten aus dem offiziellen kube-state-metrics-Projekt verwenden, wie in Teil 3 dieser Reihe besprochen. Führen Sie die folgenden Befehle aus, um die Manifeste abzurufen und auf Ihren Cluster anzuwenden:

git clone https://github.com/kubernetes/kube-state-metrics.git

cd kube-state-metrics

kubectl apply -f examples/standard

Nachfolgend sind die Screenshots aus der Datadog-Konsole.

Kubernetes-Überwachung mit Datadog

Kubernetes-Überwachung mit Datadog

Einleitung

Kubernetes-Monitoring ist entscheidend für die Gewährleistung der optimalen Leistung, Verfügbarkeit und Zuverlässigkeit Ihrer containerisierten Anwendungen, die in einem Kubernetes-Cluster ausgeführt werden. Angesichts der Komplexität und des Umfangs von Kubernetes-Bereitstellungen wird effektives Monitoring unerlässlich, um Probleme schnell zu erkennen und zu beheben. Datadog, eine beliebte Monitoring-Plattform, bietet umfassende Kubernetes-Monitoring-Funktionen. Sie bietet Echtzeit-Transparenz über den Zustand und die Leistung Ihres Clusters, einschließlich Metriken, Logs und Traces. Mit Datadog können Sie Einblicke in die Ressourcennutzung, Anwendungsleistung und Container-Orchestrierung gewinnen. Dies ermöglicht proaktive Fehlerbehebung, effiziente Ressourcenzuweisung und effektive Kapazitätsplanung, gewährleistet den reibungslosen Betrieb Ihrer Kubernetes-Umgebung und fördert die Skalierbarkeit und Stabilität von Anwendungen.

1. Voraussetzung.

. Datadog Agent auf EKS installieren

• Datadog Cluster Agent installieren

• Berechtigungen und Secrets konfigurieren

a. Erstellen von ClusterRole, ClusterRoleBinding und ServiceAccount, um dem Cluster Agent und dem Datadog Agent die Berechtigung zum Sammeln von Metriken zu erteilen.

• Erstellen eines Kubernetes Secrets zur Bereitstellung Ihres Datadog API-Schlüssels

• Bereitstellen des datadog-cluster-agent und datadog-agent auf EKS mithilfe von YAML-Dateien. (datadog-cluster-agent.yaml, datadog-agent.yaml.)

Datadog Agent auf EKS installieren:-

Der Datadog Agent ist eine kostenlose Software, die es Ihnen ermöglicht, Ihre gesamte Infrastruktur an einem Ort zu überwachen und zu verwalten, indem sie Metriken, verteilte Traces und Logs von jedem Ihrer Knoten sammelt und meldet.

Der Agent sammelt und liefert automatisch Ressourcenmessungen (wie CPU, Arbeitsspeicher und Netzwerkverkehr) von Ihren Knoten, unabhängig von der zugrunde liegenden Infrastrukturplattform, zusätzlich zur Erfassung von Telemetriedaten von Kubernetes, Docker und anderen Infrastrukturtechnologien.

Datadog Cluster Agent installieren:-

Indem er als Proxy zwischen dem API-Server und den knotenbasierten Agents fungiert, reduziert der Datadog Cluster Agent die Last auf dem Kubernetes API-Server beim Sammeln von Cluster-weiten Daten. Er erhöht zudem die Sicherheit, indem er die für die knotenbasierten Agents erforderlichen Berechtigungen senkt, und ermöglicht die automatische Skalierung von Kubernetes-Workloads anhand jeder von Datadog erfassten Metrik.

Berechtigungen und Secrets konfigurieren:-

Die folgenden Manifeste können bereitgestellt werden, um die Berechtigungen zu erstellen, die der knotenbasierte Agent und der Cluster Agent benötigen, um in Ihrem Kubernetes-Cluster zu funktionieren, falls dieser eine rollenbasierte Zugriffssteuerung implementiert. Die folgenden Manifeste stellen zwei Sätze von Berechtigungen bereit: einen für den knotenbasierten Agent und einen für den Cluster Agent. Der Cluster Agent verfügt über spezifische Rechte zum Sammeln von Cluster-weiten Metriken und Kubernetes-Ereignissen über die Kubernetes API. Die Bereitstellung dieser beiden Manifeste führt für jeden Agent-Typ zur Erstellung einer ClusterRole, eines ClusterRoleBinding und eines ServiceAccount.

2. Aufgaben.

Die URL des Github-Repositorys finden Sie unten. In diesem Repository ist die Konfigurationsdatei enthalten. Sie müssen diese Datei auf dem EKS-Cluster ausführen, damit der knotenbasierte Agent und der Cluster Agent ihre Aufgaben erledigen können.

https://github.com/frankisinfotech/Datadog-monitoring

kubectl create -f https://raw.githubusercontent.com/DataDog/datadog-agent/master/Dockerfiles/manifests/cluster-agent/cluster-agent-rbac.yaml

kubectl create -f https://raw.githubusercontent.com/DataDog/datad og-agent/master/Dockerfiles/manifests/cluster-agent/rbac.yaml

Erstellen Sie als Nächstes ein Kubernetes-Secret, damit Sie dem Agenten Ihren Datadog API-Schlüssel übergeben können, ohne ihn in Ihre Deployment-Manifeste aufnehmen zu müssen.

kubectl create secret generic datadog-secret — from-literal api-key=”<YOUR_API_KEY>”

Um eine sichere Agent-zu-Agent-Kommunikation zwischen dem Cluster Agent und den knotenbasierten Agenten zu ermöglichen, erstellen Sie ein geheimes Token wie folgt:

Erstellen Sie eine 32-Bit lange Zeichenkette über den untenstehenden Link und verwenden Sie diese dann im untenstehenden Befehl.

echo -n <32 String long password> | base64

Verwenden Sie das resultierende Token, um ein Kubernetes-Secret zu erstellen, das beide Agenten-Typen zur gegenseitigen Authentifizierung verwenden werden:

Verwenden Sie das Token, das mit dem obigen Befehl generiert wurde, im folgenden Befehl.

Kubectl create secret generic datadog-auth-token –from literal=token=<TOKEN_FROM_PREVIOUS_STEP>

Den Cluster Agent bereitstellen:-

Nachdem Sie Kubernetes-Secrets mit Ihrem Datadog API-Schlüssel und einem Authentifizierungstoken erstellt haben, sind Sie nun bereit, den Cluster Agent bereitzustellen. Kopieren Sie die Manifestdatei vom oben genannten Github-Repo-Link auf Ihren lokalen Computer und speichern Sie sie dort als datadog-cluster-agent.yaml:

Nachdem Sie die Datei lokal kopiert haben, müssen Sie sie auf dem Cluster ausführen, damit der Cluster Agent auf dem Knoten bereitgestellt wird. Verwenden Sie dazu den folgenden Befehl, um den Agenten bereitzustellen.

kubectl apply -f datadog-cluster-agent.yaml

Für den Cluster Agent erstellt das Manifest ein Kubernetes-Deployment und einen Service. Der Service bietet einen konsistenten Endpunkt innerhalb des Clusters, sodass knotenbasierte Agenten mit dem Cluster Agent kommunizieren können, unabhängig davon, wo dieser läuft. Das Deployment stellt wiederum sicher, dass immer ein einziger Cluster Agent irgendwo im Cluster ausgeführt wird. Es ist zu beachten, dass der Datadog API-Schlüssel und das Authentifizierungstoken nicht im Klartext im Manifest selbst gespeichert, sondern über Kubernetes-Secrets abgerufen werden.

Überprüfen Sie den Status des Cluster Agents mit dem folgenden Befehl:

kubectl get pods -l app=datadog-cluster-agent

Den knotenbasierten Agent bereitstellen:

Der knotenbasierte Datadog Agent lässt sich einfach in Ihrem Cluster installieren, sobald die erforderlichen Berechtigungen und Secrets generiert wurden. DD_CLUSTER_AGENT_ENABLED (auf true gesetzt) und DD_CLUSTER_AGENT_AUTH_TOKEN (mithilfe von Kubernetes Secrets gesetzt, ähnlich wie im Cluster Agent Manifest) sind zwei zusätzliche Umgebungsvariablen, die in dem Manifest festgelegt werden, das dem normalen Kubernetes Agent Manifest folgt. Speichern Sie das folgende Manifest als datadog-agent.yaml und kopieren Sie es in eine lokale Datei.

Ähnlich wie beim vorherigen Cluster Agent müssen Sie die datadog-agent-Datei in den lokalen Speicher kopieren, bevor Sie den Datadog Agent im Cluster bereitstellen. Sobald der knotenbasierte Agent als DaemonSet bereitgestellt ist, verwenden Sie den folgenden Befehl, um sicherzustellen, dass eine Instanz des Agents auf jedem Knoten im Cluster ausgeführt wird.

kubectl apply -f -f datadog-agent.yaml

Um zu überprüfen, ob der knotenbasierte Datadog Agent in Ihrem Cluster ausgeführt wird, führen Sie den folgenden Befehl aus:

kubectl get daemonset datadog-agent

Nach dieser gesamten Konfiguration werden Sie die Ressourcen und Metriken in der Datadog-Konsole sehen können.

Tauchen Sie ein in die Metriken

Die Ressourcenmessungen und Ereignisse aus Ihrem Cluster sollten in Datadog gestreamt werden, nachdem der Datadog Agent erfolgreich bereitgestellt wurde. Das integrierte Kubernetes-Dashboard ermöglicht es Ihnen, die bereits gesammelten Daten anzuzeigen.

Sie erinnern sich vielleicht aus einem früheren Teil dieser Reihe, dass ein optionales Cluster-Add-on namens kube-state-metrics spezifische Metriken auf Clusterebene bietet, insbesondere die Anzahl von Kubernetes-Objekten wie die Anzahl der gewünschten, verfügbaren und nicht verfügbaren Pods. Wenn Sie feststellen, dass diese Informationen im Dashboard fehlen, weist dies darauf hin, dass der kube-state-metrics-Dienst noch nicht installiert wurde. Sie müssen kube-state-metrics lediglich in Ihrem Cluster bereitstellen, um diese Statistiken zusätzlich zu den bereits vom Agenten erfassten Ressourcenmetriken auf niedrigerer Ebene zu sammeln.

kube-state-metrics bereitstellen

Sie können das Add-on und die zugehörigen Ressourcen schnell bereitstellen, indem Sie eine Reihe von Manifesten aus dem offiziellen kube-state-metrics-Projekt verwenden, wie in Teil 3 dieser Reihe besprochen. Führen Sie die folgenden Befehle aus, um die Manifeste abzurufen und auf Ihren Cluster anzuwenden:

git clone https://github.com/kubernetes/kube-state-metrics.git

cd kube-state-metrics

kubectl apply -f examples/standard

Nachfolgend sind die Screenshots aus der Datadog-Konsole.

Verwandte Blogbeiträge

Keine verwandten Blogbeiträge verfügbar

Das Ankercloud-Team hört Ihnen gerne zu