cAdvisor/Kubelet

Das Kubelet stellt Messwerte über sich selbst und cAdvisor-Messwerte zu Containern bereit, die auf seinem Knoten ausgeführt werden.

Alternativ zur Konfiguration dieser Integration bietet Cloud Monitoring eine sofort verwaltete Sammlung von cAdvisor/Kubelet-Messwerten. Die Option zur vollständig verwalteten Erfassung bietet einen speziellen, ausgewählten Satz von Messwerten, die standardmäßig in neuen Clustern eingerichtet werden.

Die in diesem Dokument beschriebene Integration bietet alle cAdvisor-Messwerte, von denen viele Sie wahrscheinlich nicht benötigen und wahrscheinlich herausfiltern möchten. Sie ist für Google Kubernetes Engine und andere Kubernetes-Umgebungen verfügbar. Die verwalteten cAdvisor-/Kubelet-Messwerte wurden so ausgewählt, dass sie nur die nützlichsten Messwerte liefern und nur für GKE verfügbar sind. Weitere Informationen finden Sie unter Paket: cAdvisor-/Kubelet-Messwerte.

Wenn Sie die Erfassung von cAdvisor-Messwerten wie in diesem Dokument beschrieben einrichten, ersetzt die Konfiguration die von GKE verwaltete cAdvisor-Konfiguration. Die in diesem Dokument beschriebene Konfiguration aktiviert eine Obermenge der verwalteten cAdvisor-Messwerte.

Wenn Sie den in diesem Dokument beschriebenen Ansatz verwenden, können Sie anstelle einer benutzerdefinierten PodMonitoring-Konfiguration die Verwaltete Erfassung so konfigurieren, dass cAdvisor- und Kubelet-Messwerte automatisch extrahiert werden, indem Sie die OperatorConfig bearbeiten. Sie können Manifeste installieren, indem Sie sie in eine lokale Datei kopieren und dann kubectl apply -f FILE_NAME ausführen. Sie können auch Manifeste mit Terraform installieren.

  1. Öffnen Sie die OperatorConfig-Ressource zum Bearbeiten:

    kubectl -n gmp-public edit operatorconfig config
    
  2. Fügen Sie der Ressource den folgenden collection-Bereich (in Fettschrift) hinzu:

    apiVersion: monitoring.googleapis.com/v1
    kind: OperatorConfig
    metadata:
      namespace: gmp-public
      name: config
    collection:
      kubeletScraping:
        interval: 30s
    
  3. Speichern Sie die Datei und schließen Sie den Editor.

Nach kurzer Zeit werden die Messwerte der Kubelet-Endpunkte gescraped und die Messwerte stehen für die Abfrage im Verwalteten Dienst für Prometheus zur Verfügung.

Kubelet-Extraktionen enthalten einige Standardfilter und Sie können dem Abschnitt collection der OperatorConfig-Ressource zusätzliche Filter hinzufügen, wie unten dargestellt. Der Konfigurationsabschnitt filter.matchOneOf hat die gleiche Semantik wie die match[]-Parameter für die Prometheus-Föderation.

Im folgenden Beispiel werden Messwerte herausgefiltert, die mit container_foo oder container_bar beginnen:

collection:
  filter:
    matchOneOf:
    - '{__name__!~"container_foo.*|container_bar.*"}'

Sie können diesen OperatorConfig-Sammlungsfilter auch zu Debugging-Zwecken verwenden. Sie haben beispielsweise die Möglichkeit, die Erfassung eines bestimmten Messwerts im Cluster vorübergehend zu deaktivieren, ohne PodMonitoring-Ressourcen zu ändern.

Tipps für erweiterte cAdvisor-Einrichtungen

Wenn Sie cAdvisor selbst bereitstellen oder Ihrem CAdvisorlet eine erweiterte Konfiguration bereitstellen, können Sie mit den erweiterten cAdvisor-Einstellungen zusätzliche Labels anhängen.

Vermeiden Sie vor allem das Anhängen von Kubernetes-Containerlabels oder Umgebungsvariablen an Ihre Messwerte. In diesem Fall sollten Sie diese Labels streng steuern. Verwenden Sie dazu ein Muster für eine Zulassungsliste (z. B. die Verwendung des PodMonitoring metricRelabeling-Abschnitts).

Wenn Sie die Anzahl der Labels steuern, die den Messwerten hinzugefügt werden, können Sie das Limit für die Anzahl der Labels überschreiten.