|
Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi. |
Exposez SUSE Observability en dehors du cluster
Présentation
SUSE® Observability peut être exposé avec une ressource Ingress Kubernetes. Les exemples sur cette page montrent comment configurer un contrôleur Ingress Traefik ou Nginx en utilisant Helm pour SUSE Observability fonctionnant sur Kubernetes. Cette page documente également la combinaison service/port à exposer lors de l’utilisation d’une méthode différente pour configurer le trafic Ingress.
Lors de l’observation du cluster qui héberge également SUSE® Observability, le trafic de l’agent peut être entièrement maintenu à l’intérieur du cluster lui-même en modifiant la configuration de l’agent lors de l’installation de l’agent.
Configurez l’ingress via le SUSE® Observability chart Helm
Le SUSE® Observability chart Helm expose une section ingress dans ses valeurs. Ceci est désactivé par défaut. Les exemples ci-dessous montrent comment utiliser le chart Helm pour configurer un contrôleur d’ingress avec le chiffrement TLS activé. Notez que la configuration du contrôleur lui-même et des certificats dépasse le cadre de ce document.
Pour configurer l’ingress pour SUSE® Observability, créez un fichier ingress_values.yaml avec un contenu comme ci-dessous. Remplacez MY_DOMAIN par votre propre domaine (qui est lié à votre contrôleur d’ingress) et définissez le nom correct pour le tls-secret. Consultez la documentation de votre contrôleur d’ingress pour les annotations correctes à définir. Tous les champs ci-dessous sont optionnels, par exemple, si aucun TLS n’est utilisé, omettez cette section mais sachez que SUSE® Observability ne chiffre également pas le trafic.
|
Notez que la configuration de TLS est requise pour l’utilisation de l’extension de l’interface utilisateur de Rancher. |
-
Traefik
-
Nginx Ingress
|
Problèmes connus
Assurez-vous d’utiliser Traefik < 3.6.3 or >= 3.6.7 (avec la version du chart Helm >= 39.0.0), car les versions 3.6.3 à 3.6.6 ont un problème qui provoque des erreurs sur certains points de terminaison API. En particulier, les pages de mise en évidence des composants échouent à se charger en raison d’appels API bloqués par Traefik avec une erreur |
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
|
Le projet Ingress Nginx est en cours de retrait. Les utilisateurs sont invités à envisager des alternatives telles que Traefik. |
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
Ce qui se distingue dans ce fichier est l’annotation Nginx pour augmenter le proxy-body-size autorisé à 50m (plus grand que toute demande attendue). Par défaut, Nginx autorise des tailles de corps maximales de 1m. SUSE® Observability Agents et autres fournisseurs de données peuvent parfois envoyer des requêtes beaucoup plus volumineuses. Pour cette raison, vous devez vous assurer que la taille de corps autorisée est suffisamment grande, que vous utilisiez Nginx ou un autre contrôleur Ingress.
Assurez-vous de mettre à jour le baseUrl dans le fichier de valeurs généré lors de l’installation initiale, il sera utilisé par SUSE® Observability pour générer des instructions d’installation pratiques pour l’agent.
Les exemples utilisent le champ ingressClassName pour spécifier le ingress au lieu de l’annotation kubernetes.io/ingress.class dont la prise en charge a cessé. Si votre cluster a une classe d’ingress par défaut définie, le champ du nom de la classe d’ingress peut être omis.
Les exemples utilisent le champ ingressClassName pour spécifier le ingress au lieu de l’annotation kubernetes.io/ingress.class dont la prise en charge a cessé. Si votre cluster a une classe d’ingress par défaut définie, le champ du nom de la classe d’ingress peut être omis.
Incluez le fichier ingress_values.yaml lorsque vous exécutez la commande helm upgrade pour déployer SUSE® Observability :
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
|
Cette étape suppose que Générer |
Configurer la règle Ingress pour Open Telemetry
Le SUSE® Observability chart Helm expose un service opentelemetry-collector dans ses valeurs dans lequel un ingress dédié peut être créé. Ceci est désactivé par défaut. L’Ingress nécessaire pour des fins opentelemetry-collector doit prendre en charge le protocole GRPC. Notez que la configuration du contrôleur lui-même et des certificats dépasse le cadre de ce document.
Pour configurer l’Ingress opentelemetry-collector pour SUSE® Observability, créez un fichier ingress_otel_values.yaml avec un contenu comme ci-dessous. Remplacez MY_DOMAIN par votre propre domaine (qui est lié à votre contrôleur Ingress) et définissez le nom correct pour le otlp-tls-secret. Consultez la documentation de votre contrôleur d’ingress pour les annotations correctes à définir. Tous les champs ci-dessous sont optionnels, par exemple, si aucun TLS n’est utilisé, omettez cette section mais sachez que SUSE® Observability ne chiffre pas le trafic.
-
Traefik
-
Nginx Ingress
|
Problèmes connus
Assurez-vous d’utiliser Traefik < 3.6.3 or >= 3.6.7 (avec la version du chart Helm >= 39.0.0), car les versions 3.6.3 à 3.6.6 ont un problème qui provoque des erreurs sur certains points de terminaison API. En particulier, les pages de mise en évidence des composants échouent à se charger en raison d’appels API bloqués par Traefik avec une erreur |
|
L’exposition du point de terminaison GRPC du Collecteur OpenTelemetry via Traefik est prise en charge à partir de la version v2.8.0 du SUSE® Observability chart Helm. Notez que l’entrée hôte GRPC nécessite un |
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
|
Le projet Ingress Nginx est en cours de retrait. Les utilisateurs sont invités à envisager des alternatives telles que Traefik. |
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
Ce qui se distingue dans ce fichier est l’annotation Nginx pour augmenter le proxy-body-size autorisé à 50m (plus grand que toute demande attendue). Par défaut, Nginx autorise des tailles de corps maximales de 1m. SUSE® Observability Agents et autres fournisseurs de données peuvent parfois envoyer des requêtes beaucoup plus volumineuses. Pour cette raison, vous devez vous assurer que la taille de corps autorisée est suffisamment grande, que vous utilisiez Nginx ou un autre contrôleur d’entrée.
Assurez-vous de mettre à jour le baseUrl dans le fichier de valeurs généré lors de l’installation initiale, il sera utilisé par SUSE® Observability pour générer des instructions d’installation pratiques pour l’agent.
Les exemples utilisent le champ ingressClassName pour spécifier le ingress au lieu de l’annotation kubernetes.io/ingress.class dont la prise en charge a cessé. Si votre cluster a une classe d’ingress par défaut définie, le champ du nom de la classe d’ingress peut être omis.
Les exemples utilisent le champ ingressClassName pour spécifier le ingress au lieu de l’annotation kubernetes.io/ingress.class dont la prise en charge a cessé. Si votre cluster a une classe d’ingress par défaut définie, le champ du nom de la classe d’ingress peut être omis.
Incluez le fichier ingress_otel_values.yaml lorsque vous exécutez la commande helm upgrade pour déployer SUSE® Observability :
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
|
Cette étape suppose que Générer |
Configurer via des outils externes
Pour rendre SUSE® Observability accessible en dehors du cluster Kubernetes dans lequel il est installé, il suffit d’acheminer le trafic vers le port 8080 du service <namespace>-stackstate-k8s-router. L’interface utilisateur de SUSE® Observability peut être accessible directement sous le chemin racine de ce service (c’est-à-dire http://<namespace>-stackstate-k8s-router:8080) tandis que les agents utiliseront le chemin /receiver (http://<namespace>-stackstate-k8s-router:8080/receiver).
Assurez-vous de mettre à jour le baseUrl dans le fichier de valeurs généré lors de l’installation initiale, il sera utilisé par SUSE® Observability pour générer des instructions d’installation pratiques pour l’agent.
|
Lors de la configuration manuelle d’un serveur HTTP Nginx ou similaire en tant que proxy inverse, assurez-vous qu’il peut également gérer les websockets. Pour Nginx, cela peut être configuré en incluant les directives suivantes dans la directive
|
|
La directive SUSE® Observability elle-même n’utilise pas de trafic chiffré TLS, le chiffrement TLS doit être géré par le contrôleur d’entrée ou les équilibreurs de charge externes. |
Agents dans le même cluster
Les agents déployés dans le même cluster que SUSE® Observability peuvent bien sûr utiliser l’URL externe sur laquelle SUSE® Observability est exposé, mais il est également possible de configurer l’agent pour se connecter directement à l’instance SUSE® Observability via le réseau interne de Kubernetes uniquement. Pour ce faire, remplacez la valeur de 'stackstate.url' dans la commande helm install de l’installation de l’Agent Kubernetes Agent Kubernetes installation par l’URL interne du cluster pour le service de routeur (voir aussi ci-dessus) : http://<namespace>-suse-observability-router.<namespace>.svc.cluster.local:8080/receiver/stsAgent (les sections <namespace> doivent être remplacées par l’espace de noms de SUSE® Observability).
Transfert du port du SUSE® Observability service de routeur
Par défaut, le graphique Helm SUSE® Observability déploie un pod et un service de routeur. Ce service expose le port 8080, qui est le seul point d’entrée qui doit être exposé via Ingress.
Vous pouvez également accéder à SUSE® Observability via le transfert de port ; ce faisant, vous devez autoriser localhost comme origine de la requête.
|
Pour accéder à l’interface utilisateur sans configurer Ingress, transférez le port du service de routeur :
kubectl port-forward service/<helm-release-name>-suse-observability-router 8080:8080 --namespace suse-observability
Lors de l’accès à SUSE® Observability via le transfert de port, le navigateur utilise http://localhost:8080 comme origine de la requête.
Pour autoriser les requêtes provenant de cette origine, ajoutez-la à la liste stackstate.allowedOrigins dans les valeurs Helm, ou passez-la directement à la commande Helm :
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
Reportez-vous également à la section
-
Documentation officielle EKS (sans utiliser Nginx)
-
Article de blog EKS (en utilisant Nginx)