|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
SUSE Observability außerhalb des Clusters zugänglich machen.
Übersicht
SUSE® Observability kann mit einer Kubernetes Ingress-Ressource exponiert werden. Die Beispiele auf dieser Seite zeigen, wie man einen Traefik- oder Nginx-Ingress-Controller mit Helm für SUSE Observability, das auf Kubernetes läuft konfiguriert. Diese Seite dokumentiert auch, welche Service-/Port-Kombination exponiert werden soll, wenn eine andere Methode zur Konfiguration des Ingress-Verkehrs verwendet wird.
Wenn der Cluster, der auch SUSE® Observability hostet, überwacht wird, kann der Agentverkehr vollständig innerhalb des Clusters bleiben, indem während der Agentinstallation die Agentenkonfiguration geändert wird.
Konfigurieren Sie den Ingress über das SUSE® Observability Helm-Chart
Das SUSE® Observability Helm-Chart stellt einen ingress Abschnitt in seinen Werten bereit. Dies ist standardmäßig deaktiviert. Die folgenden Beispiele zeigen, wie man das Helm-Chart verwendet, um einen Ingress-Controller mit aktivierter TLS-Verschlüsselung zu konfigurieren. Beachten Sie, dass die Einrichtung des Controllers selbst und der Zertifikate über den Rahmen dieses Dokuments hinausgeht.
Erstellen Sie eine Datei ingress_values.yaml mit folgendem Inhalt, um den Ingress für SUSE® Observability zu konfigurieren. Ersetzen Sie MY_DOMAIN durch Ihre eigene Domain (die mit Ihrem Ingress-Controller verknüpft ist) und setzen Sie den richtigen Namen für das tls-secret. Konsultieren Sie die Dokumentation Ihres Ingress-Controllers für die richtigen Anmerkungen, die gesetzt werden müssen. Alle Felder unten sind optional, zum Beispiel, wenn kein TLS verwendet wird, lassen Sie diesen Abschnitt weg, aber beachten Sie, dass SUSE® Observability auch den Verkehr nicht verschlüsselt.
|
Beachten Sie, dass die Einrichtung von TLS für die Verwendung der Rancher UI-Erweiterung erforderlich ist. |
-
Traefik
-
Nginx Ingress
|
Bekannte Probleme
Stellen Sie sicher, dass Sie Traefik < 3.6.3 or >= 3.6.7 (mit Helm-Chart-Version >= 39.0.0) verwenden, da die Versionen 3.6.3 bis 3.6.6 ein Problem haben, das Fehler bei einigen API-Endpunkten verursacht. Insbesondere werden die Seiten zur Komponenten-Hervorhebung nicht geladen, weil API-Aufrufe von Traefik mit einem |
ingress:
enabled: true
ingressClassName: traefik
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: websecure
hosts:
- host: suse-observability.MY_DOMAIN
tls:
- hosts:
- suse-observability.MY_DOMAIN
secretName: tls-secret
|
Das Ingress Nginx-Projekt wird eingestellt. Benutzern wird geraten, Alternativen wie Traefik in Betracht zu ziehen. |
ingress:
enabled: true
ingressClassName: nginx
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
hosts:
- host: suse-observability.MY_DOMAIN
tls:
- hosts:
- suse-observability.MY_DOMAIN
secretName: tls-secret
Was in dieser Datei auffällt, ist die Nginx-Anmerkung zur Erhöhung der erlaubten proxy-body-size auf 50m (größer als jede erwartete Anfrage). Standardmäßig erlaubt Nginx maximale Körpergrößen von 1m. SUSE® Observability Agenten und andere Datenanbieter können manchmal viel größere Anfragen senden. Aus diesem Grund sollten Sie sicherstellen, dass die erlaubte Körpergröße groß genug ist, unabhängig davon, ob Sie Nginx oder einen anderen Ingress-Controller verwenden.
Stellen Sie sicher, dass Sie die baseUrl in der während der Erstinstallation generierten Werte-Datei aktualisieren, da sie von SUSE® Observability verwendet wird, um bequeme Installationsanweisungen für den Agenten zu generieren.
Die Beispiele verwenden das ingressClassName Feld, um das ingress anzugeben, anstelle der ausgelaufenen kubernetes.io/ingress.class-Anmerkung. Wenn Ihr Cluster eine standardmäßige Ingress-Klasse definiert hat, kann das Feld für den Namen der Ingress-Klasse weggelassen werden.
Die Beispiele verwenden das ingressClassName Feld, um das ingress anzugeben, anstelle der ausgelaufenen kubernetes.io/ingress.class-Anmerkung. Wenn Ihr Cluster eine standardmäßige Ingress-Klasse definiert hat, kann das Feld für den Namen der Ingress-Klasse weggelassen werden.
Fügen Sie die ingress_values.yaml Datei hinzu, wenn Sie den helm upgrade Befehl ausführen, um SUSE® Observability bereitzustellen:
helm upgrade --install \
--namespace "suse-observability" \
--values "ingress_values.yaml" \
--values $VALUES_DIR/suse-observability-values/templates/baseConfig_values.yaml \
--values $VALUES_DIR/suse-observability-values/templates/sizing_values.yaml \
--values $VALUES_DIR/suse-observability-values/templates/affinity_values.yaml \
suse-observability \
suse-observability/suse-observability
|
Dieser Schritt geht davon aus, dass Generate |
Ingress-Regel für Open Telemetry konfigurieren
Das SUSE® Observability Helm-Chart stellt einen opentelemetry-collector Dienst in seinen Werten bereit, wo ein dedizierter ingress erstellt werden kann. Dies ist standardmäßig deaktiviert. Der für opentelemetry-collector erforderliche Ingress muss das GRPC-Protokoll unterstützen. Beachten Sie, dass die Einrichtung des Controllers selbst und der Zertifikate über den Rahmen dieses Dokuments hinausgeht.
Erstellen Sie eine Datei ingress_otel_values.yaml mit folgendem Inhalt, um den opentelemetry-collector Ingress für SUSE® Observability zu konfigurieren. Ersetzen Sie MY_DOMAIN durch Ihre eigene Domain (die mit Ihrem Ingress-Controller verknüpft ist) und setzen Sie den richtigen Namen für die otlp-tls-secret. Konsultieren Sie die Dokumentation Ihres Ingress-Controllers für die richtigen Anmerkungen, die gesetzt werden müssen. Alle untenstehenden Felder sind optional, zum Beispiel, wenn kein TLS verwendet wird, lassen Sie diesen Abschnitt weg, aber beachten Sie, dass SUSE® Observability auch den Verkehr nicht verschlüsselt.
-
Traefik
-
Nginx Ingress
|
Bekannte Probleme
Stellen Sie sicher, dass Sie Traefik < 3.6.3 or >= 3.6.7 (mit Helm-Chart-Version >= 39.0.0) verwenden, da die Versionen 3.6.3 bis 3.6.6 ein Problem haben, das Fehler bei einigen API-Endpunkten verursacht. Insbesondere werden die Komponenten-Hervorhebungsseiten nicht geladen, weil API-Aufrufe von Traefik mit einem |
|
Das Exponieren des OpenTelemetry Collector GRPC-Endpunkts über Traefik wird ab der SUSE® Observability Helm-Chart-Version v2.8.0 unterstützt. Beachten Sie, dass der GRPC-Hosteintrag eine explizite |
opentelemetry-collector:
ingress:
enabled: true
ingressClassName: traefik
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: websecure
hosts:
- host: otlp-suse-observability.MY_DOMAIN
paths:
- path: /
pathType: Prefix
serviceName: suse-observability-otel-collector-grpc
port: 4317
tls:
- hosts:
- otlp-suse-observability.MY_DOMAIN
secretName: otlp-tls-secret
additionalIngresses:
- name: otlp-http
ingressClassName: traefik
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: websecure
hosts:
- host: otlp-http-suse-observability.MY_DOMAIN
paths:
- path: /
pathType: Prefix
port: 4318
tls:
- hosts:
- otlp-http-suse-observability.MY_DOMAIN
secretName: otlp-http-tls-secret
|
Das Ingress Nginx-Projekt wird eingestellt. Benutzern wird geraten, Alternativen wie Traefik in Betracht zu ziehen. |
opentelemetry-collector:
ingress:
enabled: true
ingressClassName: nginx
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
nginx.ingress.kubernetes.io/backend-protocol: GRPC
hosts:
- host: otlp-suse-observability.MY_DOMAIN
- host: otlp-suse-observability.MY_DOMAIN
paths:
- path: /
pathType: Prefix
port: 4317
tls:
- hosts:
- otlp-suse-observability.MY_DOMAIN
- otlp-suse-observability.MY_DOMAIN
secretName: otlp-tls-secret
additionalIngresses:
- name: otlp-http
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
hosts:
- host: otlp-http-suse-observability.MY_DOMAIN
- host: otlp-http-suse-observability.MY_DOMAIN
paths:
- path: /
pathType: Prefix
port: 4318
tls:
- hosts:
- otlp-http-suse-observability.MY_DOMAIN
- otlp-http-suse-observability.MY_DOMAIN
secretName: otlp-http-tls-secret
Was in dieser Datei auffällt, ist die Nginx-Anmerkung zur Erhöhung der erlaubten proxy-body-size auf 50m (größer als jede erwartete Anfrage). Standardmäßig erlaubt Nginx maximale Körpergrößen von 1m. SUSE® Observability Agenten und andere Datenanbieter können manchmal viel größere Anfragen senden. Aus diesem Grund sollten Sie sicherstellen, dass die erlaubte Körpergröße groß genug ist, unabhängig davon, ob Sie Nginx oder einen anderen Ingress-Controller verwenden.
Stellen Sie sicher, dass Sie die baseUrl in der während der Erstinstallation generierten Werte-Datei aktualisieren, da sie von SUSE® Observability verwendet wird, um bequeme Installationsanweisungen für den Agenten zu generieren.
Die Beispiele verwenden das ingressClassName Feld, um das ingress anzugeben, anstelle der ausgelaufenen kubernetes.io/ingress.class-Anmerkung. Wenn Ihr Cluster eine standardmäßige Ingress-Klasse definiert hat, kann das Feld für den Namen der Ingress-Klasse weggelassen werden.
Die Beispiele verwenden das ingressClassName Feld, um das ingress anzugeben, anstelle der ausgelaufenen kubernetes.io/ingress.class-Anmerkung. Wenn Ihr Cluster eine standardmäßige Ingress-Klasse definiert hat, kann das Feld für den Namen der Ingress-Klasse weggelassen werden.
Fügen Sie die ingress_otel_values.yaml Datei hinzu, wenn Sie den helm upgrade Befehl ausführen, um SUSE® Observability bereitzustellen:
helm upgrade \
--install \
--namespace "suse-observability" \
--values "ingress_otel_values.yaml" \
--values $VALUES_DIR/suse-observability-values/templates/baseConfig_values.yaml \
--values $VALUES_DIR/suse-observability-values/templates/sizing_values.yaml \
--values $VALUES_DIR/suse-observability-values/templates/affinity_values.yaml \
suse-observability \
suse-observability/suse-observability
|
Dieser Schritt geht davon aus, dass Generate |
Über externe Werkzeuge konfigurieren
Um SUSE® Observability außerhalb des Kubernetes-Clusters, in dem es installiert ist, zugänglich zu machen, reicht es aus, den Datenverkehr zum Port 8080 des <namespace>-stackstate-k8s-router Dienstes zu leiten. Die Benutzeroberfläche von SUSE® Observability kann direkt unter dem Stammverzeichnis dieses Dienstes (d.h. http://<namespace>-stackstate-k8s-router:8080) aufgerufen werden, während Agenten den Pfad /receiver (http://<namespace>-stackstate-k8s-router:8080/receiver) verwenden.
Stellen Sie sicher, dass Sie die baseUrl in der während der Erstinstallation generierten Werte-Datei aktualisieren, sie wird von SUSE® Observability verwendet, um bequeme Installationsanweisungen für den Agenten zu generieren.
|
Stellen Sie sicher, dass Sie beim manuellen Konfigurieren eines Nginx oder ähnlichen HTTP-Servers als Reverse-Proxy auch Websockets weiterleiten können. Für Nginx kann dies konfiguriert werden, indem die folgenden Direktiven in die
|
|
SUSE® Observability selbst verwendet keinen TLS-verschlüsselten Verkehr. Die TLS-Verschlüsselung wird vom Ingress-Controller oder externen Lastenausgleichern erwartet. |
Agenten im selben Cluster
Agenten, die im selben Cluster wie SUSE® Observability bereitgestellt werden, können natürlich die externe URL verwenden, unter der SUSE® Observability verfügbar ist, aber es ist auch möglich, den Agenten so zu konfigurieren, dass er direkt über das interne Kubernetes-Netzwerk mit der SUSE® Observability-Instanz verbunden wird. Um dies zu tun, ersetzen Sie den Wert von 'stackstate.url' im helm install-Befehl aus der Agent Kubernetes-Installation durch die interne Cluster-URL für den Router-Dienst (siehe auch oben): http://<namespace>-suse-observability-router.<namespace>.svc.cluster.local:8080/receiver/stsAgent (die <namespace>-Abschnitte müssen durch den Namespace von SUSE® Observability ersetzt werden).
Weiterleitung des Ports des SUSE® Observability-Router-Dienstes
Standardmäßig stellt das SUSE® Observability Helm-Chart einen Router-Pod und -Dienst bereit. Dieser Dienst gibt den Port 8080 frei, der der einzige Einstiegspunkt ist, der über Ingress verfügbar gemacht werden muss.
Sie können auch auf SUSE® Observability über Port-Weiterleitung zugreifen; dabei müssen Sie localhost als Ursprungsanfrage zulassen.
|
Um auf die Benutzeroberfläche zuzugreifen, ohne Ingress zu konfigurieren, leiten Sie den Port des Router-Dienstes weiter:
kubectl port-forward service/<helm-release-name>-suse-observability-router 8080:8080 --namespace suse-observability
Beim Zugriff auf SUSE® Observability über Port-Weiterleitung verwendet der Browser http://localhost:8080 als Ursprungsanfrage.
Um Anfragen von diesem Ursprung zuzulassen, fügen Sie ihn der stackstate.allowedOrigins-Liste in den Helm-Werten hinzu oder übergeben Sie ihn direkt an den Helm-Befehl.
helm upgrade \
--install \
--namespace suse-observability \
--values $VALUES_DIR/suse-observability-values/templates/baseConfig_values.yaml \
--values $VALUES_DIR/suse-observability-values/templates/sizing_values.yaml \
--values $VALUES_DIR/suse-observability-values/templates/affinity_values.yaml \
--set stackstate.allowedOrigins={"http://localhost:8080"} \
suse-observability \
suse-observability/suse-observability