Getty Images
Wie Sie OpenTelemetry nutzen, um Kubernetes zu überwachen
Die Bereitstellung von OpenTelemetry auf Kubernetes verschafft einen Vorsprung bei der Überwachung von Kubernetes. Dieser Beitrag erklärt, wie Sie das Tool richtig implementieren.
Die Beobachtbarkeit von Kubernetes kann komplex sein, aber das Observability Framework OpenTelementry kann die Anwendungsüberwachung und -beobachtung in ganzen Clustern ermöglichen.
Kubernetes ist unter anderem deshalb so nützlich, weil ein einziger Cluster als Hosting-Umgebung für viele verschiedene Anwendungen dienen kann. Eine zentrale Herausforderung bei der Bereitstellung mehrerer Anwendungen auf Kubernetes besteht jedoch darin, dass jede Anwendung Überwachungsdaten auf unterschiedliche Weise bereitstellen kann, was eine einheitliche Überwachung aller Anwendungen erschwert.
OpenTelemetry ist eine Möglichkeit, diese Herausforderung zu lösen. Mit nur einem Tool kann OpenTelemetry effizient Überwachungsdaten für jede Anwendung innerhalb eines Kubernetes-Clusters sammeln, sofern diese das OpenTelemetry Framework verwendet. Teams können OpenTelemetry für eine verbesserte Kubernetes-Überwachung entweder mit einem Helm-Diagramm oder einem Operator einfach einsetzen.
Was ist OpenTelemetry?
OpenTelemetry ist ein Monitoring und Observability Framework, das eine konsistente und standardisierte Methode zum Generieren und Sammeln von Monitoring-Daten aus beliebigen Anwendungen bietet.
Mithilfe der OpenTelemetry-Bibliotheken und -Toolkits können Entwickler Observability-Funktionen in Anwendungen einbetten, während sie diese erstellen. Mit anderen Worten: Sie können Anwendungen so programmieren, dass sie Überwachungsdaten gemäß den von OpenTelemetry definierten Spezifikationen bereitstellen. Anschließend kann jedes Überwachungs- und Datenanalyse-Tools, das die OpenTelemetry-Spezifikationen unterstützt, diese Daten erfassen.
Warum ist OpenTelemetry nützlich?
Der Hauptzweck von OpenTelemetry besteht darin, die Überwachung und Datenerfassung zu vereinfachen, da die Teams nicht mehr jede Anwendung auf eine eigene Weise überwachen müssen. Jede Anwendung, die sich an die OpenTelemetry-Spezifikationen hält, ist mit jedem Datenerfassungs- und Überwachungs-Tool kompatibel, das OpenTelemetry unterstützt.
Um ein bestimmtes Überwachungs-Tool für eine Anwendung zu verwenden, ist es daher nicht notwendig, die Anwendung so zu gestalten, dass sie die Überwachungsdaten auf die vom Tool erwartete Weise offenlegt. Solange sowohl die Anwendung als auch das Tool OpenTelemetry unterstützen, sind sie kompatibel. Dadurch können IT-Teams problemlos zwischen OpenTelemetry-kompatiblen Überwachungs-Tools wechseln, ohne die Überwachungs- und Beobachtungs-Frameworks der Anwendungen überarbeiten zu müssen.
Darüber hinaus müssen Anwendungsentwickler keine besonderen Anstrengungen unternehmen, um die OpenTelemetry-Unterstützung zu aktivieren. Stattdessen können sie einfach die vorgefertigten Bibliotheken von OpenTelemetry verwenden.
Der größte Nachteil von OpenTelemetry ist, dass die Anbieter von Überwachungs- und Beobachtungs-Tools sich für die Unterstützung von OpenTelemetry entscheiden müssen, damit Entwickler es in Verbindung mit ihren Anwendungen nutzen können. Obwohl es kein allgemeines Mandat gibt, das die Anbieter dazu verpflichtet, genießt OpenTelemetry als ein von der Gemeinschaft unterstütztes Projekt, das bereits seit mehreren Jahren existiert, breite Unterstützung. Laut der Projektdokumentation unterstützen derzeit mehr als 40 Anbieter von Überwachungs- und Beobachtungsfunktionen das Framework.
Die Vorteile von OpenTelemetry für Kubernetes
OpenTelemetry kann die Überwachung und Beobachtbarkeit von Anwendungen optimieren, die in einer beliebigen Umgebung gehostet werden, aber das Framework ist besonders wertvoll für die Überwachung und Beobachtung von Kubernetes-gehosteten Anwendungen.
Ein Kubernetes-Cluster kann die Heimat vieler verschiedener Anwendungen sein. Die Fähigkeit, eine Umgebung für das Hosting aller Anwendungen bereitzustellen, die ein Unternehmen benötigt, macht Kubernetes so attraktiv.
Kubernetes selbst bietet jedoch keine integrierten Tools für die Überwachung oder Beobachtung von Anwendungen. Wenn jede Anwendung in einem Cluster Überwachungsdaten auf eine andere Art und Weise preisgibt, kann die Komplexität überwältigend sein und möglicherweise mehrere Überwachungs- und Beobachtungs-Tools erfordern, um die verschiedenen Ansätze zu unterstützen. Das ist im besten Fall ineffizient und führt im schlimmsten Fall zu kritischen blinden Flecken bei der Überwachung, da nicht alle relevanten Daten gesammelt und analysiert werden können.
OpenTelemetry lindert dieses Problem. Durch die Bereitstellung von OpenTelemetry innerhalb eines Kubernetes-Clusters können Teams alle ihre Anwendungen mit einem einheitlichen Framework überwachen und beobachten, sofern die Anwendungen OpenTelemetry unterstützen. Das Hinzufügen von OpenTelemetry-Unterstützung zu den meisten Anwendungen ist einfach, dank bereits vorhandener Bibliotheken, die Entwickler verwenden können, ohne dass sie Anwendungen neu entwerfen oder große Mengen an Quellcode umschreiben müssen.
So installieren Sie OpenTelemetry in einem Kubernetes-Cluster
Es gibt zwei Hauptwege, um OpenTelemetry in Kubernetes zu installieren: ein Helm-Diagramm oder ein Operator. Beide Ansätze sind einfach. Lassen Sie uns beide Vorgehensweisen durchgehen.
Vorbedingung: cert-manager installieren
Bevor Sie OpenTelemetry mit dem Helm-Chart oder dem Operator-Ansatz installieren, müssen Sie cert-manager einrichten, der X.509-Zertifikate als Ressourcentypen in Kubernetes bereitstellt. In den meisten Fällen können Sie cert-manager mit dem folgenden Befehl einrichten:
kubectl apply -f
https://github.com/cert-manager/cert-manager/releases/download/v1.13.1/cert-manager.yaml
Für komplexere Installationsszenarien lesen Sie bitte die Dokumentation zur Installation von cert-manager.
1. Installieren Sie OpenTelemetry mithilfe eines Helm-Diagramms
Um das OpenTelemetry-Helm-Chart zu installieren, fügen Sie zunächst das offizielle OpenTelemetry-Helm-Repository hinzu:
helm repo add open-telemetry https://open- telemetry.github.io/opentelemetry-helm-charts
helm repo update
Installieren Sie dann das Diagramm mit dem folgenden Befehl:
helm install opentelemetry-operator open-telemetry/opentelemetry-operator
2. OpenTelemetry mit einem Operator installieren
Um den OpenTelemetry-Operator zu installieren, führen Sie den folgenden Befehl aus:
kubectl apply -f
https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml
Erstellen Sie dann ein OpenTelemetry-Bereitstellungsmanifest, wie in der folgenden Beispielkonfiguration von OpenTelemetry gezeigt:
apiVersion: opentelemetry.io/v1alpha1
kind: OpenTelemetryCollector
metadata:
name: simplest
spec:
config: |
receivers:
otlp:
protocols:
grpc:
http:
processors:
exporters:
# NOTE: Prior to v0.86.0 use `logging` instead of `debug`.
debug:
service:
pipelines:
traces:
receivers: [otlp]
processors: []
exporters: [debug]
Einzelheiten zu allen verfügbaren Konfigurationsoptionen finden Sie in der OpenTelemetry-Operator-Dokumentation.
Zum Schluss wenden Sie Ihre Bereitstellung mit dem folgenden Befehl an:
kubectl apply -f /path/to/manifest.yaml
Sobald Sie OpenTelemetry in Ihren Clustern installiert haben, können Sie mit jedem OpenTelemetry-kompatiblen Tool Erkenntnisse über die Beobachtbarkeit Ihrer Anwendungen sammeln.