Zum Inhalt springen

Cluster-Agent-Referenz

Der Kubetail Cluster Agent ist ein Rust-basierter gRPC-Server, der als DaemonSet auf jedem Knoten Ihres Kubernetes-Clusters laeuft. Er liest Container-Logdateien direkt aus dem Dateisystem des Knotens und streamt sie bei Bedarf an die Cluster API. Das Server-Binary wird aus dem Quellcode im Kubetail-Repository unter crates/cluster_agent kompiliert und in der Regel ueber das Docker-Image kubetail-cluster-agent bereitgestellt (siehe unten). Es ist moeglich, kubetail-cluster-agent als eigenstaendigen Container auszufuehren, wir empfehlen jedoch die Bereitstellung ueber das offizielle Kubetail-Helm-Chart.

Das Docker-Image kubetail-cluster-agent wird bei jedem Release auf Docker Hub und in der GitHub Container Registry veroeffentlicht:

RegistryImage
Docker Hubkubetail/kubetail-cluster-agent
GHCRghcr.io/kubetail-org/kubetail-cluster-agent

Es sind zwei Varianten verfuegbar:

Tag-SuffixBasis-ImageBeschreibung
(keines)scratchMinimales Image, kleinster Footprint
-alpinealpineEnthaelt eine Shell und Standardwerkzeuge

Der Standard-Entry-Point des Containers ist /cluster-agent/cluster-agent:

Terminal-Fenster
cluster-agent --config <FILE> [flags]
FlagKurzStandardBeschreibung
--config-cPfad zur Konfigurationsdatei (erforderlich)
--addr-aAdresse, auf der Verbindungen angenommen werden (ueberschreibt die Konfiguration)

Der Cluster Agent wird ausschliesslich ueber eine Konfigurationsdatei konfiguriert. Der Pfad muss bei jedem Aufruf mit -c / --config uebergeben werden. Umgebungsvariablen koennen in der Konfigurationsdatei mit standardmaessiger Shell-Syntax referenziert werden.

Terminal-Fenster
cluster-agent --config /etc/kubetail/cluster-agent.yaml
## Kubetail Cluster Agent Configuration File
#
# Diese Datei definiert das Verhalten des kubetail cluster agent,
# der in Kubernetes-Clustern ausgefuehrt wird, um Container-Logs zu streamen und zu verarbeiten.
#
## addr ##
#
# Die Netzwerkadresse und der Port, an die der gRPC-Server gebunden werden soll.
#
# Standardwert: :50051
#
addr: :50051
## container-logs-dir ##
#
# Der Verzeichnispfad, in dem Kubernetes Container-Logdateien speichert.
# Dies ist in der Regel ein Mount aus dem Dateisystem des Host-Knotens.
#
# Standardwert: /var/log/containers
#
container-logs-dir: /var/log/containers
## logging ##
#
# Konfiguration fuer die Log-Ausgabe des Agents
#
logging:
## enabled ##
#
# Ob Logging fuer den Agent aktiviert ist.
#
# Standardwert: true
#
enabled: true
## level ##
#
# Das minimale Log-Level, das ausgegeben wird.
# Gueltige Werte: debug, info, warn, error
#
# Standardwert: info
#
level: info
## format ##
#
# Das Format der Log-Ausgabe.
# Gueltige Werte: json, pretty
#
# Standardwert: json
#
format: json
## tls ##
#
# TLS-Konfiguration fuer sichere gRPC-Verbindungen
#
tls:
## enabled ##
#
# Ob TLS fuer gRPC-Verbindungen aktiviert ist.
#
# Standardwert: false
#
enabled: false
## cert-file ##
#
# Pfad zur TLS-Zertifikatsdatei.
#
# Standardwert: ""
#
cert-file: ""
## key-file ##
#
# Pfad zur TLS-Private-Key-Datei.
#
# Standardwert: ""
#
key-file: ""
## ca-file ##
#
# Pfad zur CA-Zertifikatsdatei, die zur Verifizierung von Client-Zertifikaten verwendet wird.
# Erforderlich, wenn client-auth auf require-and-verify gesetzt ist.
#
# Standardwert: ""
#
ca-file: ""
## client-auth ##
#
# Die Client-Authentifizierungsrichtlinie fuer eingehende gRPC-Verbindungen.
# Gueltige Werte: none, require-and-verify
#
# Standardwert: none
#
client-auth: none