|
Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado. |
Exponga SUSE Observability fuera del clúster
Descripción general
SUSE® Observability se puede exponer con un recurso Ingress de Kubernetes. Los ejemplos en esta página muestran cómo configurar un controlador Ingress de Traefik o Nginx utilizando Helm para SUSE Observability ejecutándose en Kubernetes. Esta página también documenta qué combinación de servicio/puerto exponer al utilizar un método diferente de configuración del tráfico de Ingress.
Al observar el clúster que también alberga SUSE® Observability, el tráfico del agente se puede mantener completamente dentro del clúster mismo cambiando la configuración del agente durante la instalación del agente.
Configure Ingress a través del SUSE® Observability gráfico de Helm
El SUSE® Observability gráfico de Helm expone una sección ingress en sus valores. Esto está inhabilitado por defecto. Los ejemplos a continuación muestran cómo utilizar el gráfico de Helm para configurar un controlador de Ingress con cifrado TLS habilitado. Tenga en cuenta que la configuración del controlador en sí y los certificados está más allá del alcance de este documento.
Para configurar el Ingress para SUSE® Observability, cree un archivo ingress_values.yaml con contenidos como los siguientes. Reemplace MY_DOMAIN con su propio dominio (que está vinculado a su controlador de Ingress) y establezca el nombre correcto para el tls-secret. Consulte la documentación de su controlador de Ingress para las anotaciones correctas que debe establecer. Todos los campos a continuación son opcionales, por ejemplo, si no se utilizará TLS, omita esa sección, pero tenga en cuenta que SUSE® Observability tampoco cifra el tráfico.
|
Tenga en cuenta que la configuración de TLS es necesaria para el uso de la extensión de la interfaz de usuario de Rancher. |
-
Traefik
-
Nginx Ingress
|
Problemas conocidos
Asegúrese de utilizar Traefik < 3.6.3 or >= 3.6.7 (con versión del gráfico de Helm >= 39.0.0), ya que las versiones 3.6.3 a 3.6.6 tienen un problema que causa errores en algunos puntos finales de la API. En particular, las páginas de componentes destacados no se cargan debido a que las llamadas a la API están bloqueadas por Traefik con un error |
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
|
El proyecto Ingress Nginx está siendo retirado. Se aconseja a los usuarios que consideren alternativas como 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
Lo que destaca en este archivo es la anotación de Nginx para aumentar el proxy-body-size permitido a 50m (mayor que cualquier solicitud esperada). Por defecto, Nginx permite tamaños de cuerpo de un máximo de 1m. SUSE® Observability Los agentes y otros proveedores de datos pueden a veces enviar solicitudes mucho más grandes. Por esta razón, debe asegurarse de que el tamaño de cuerpo permitido sea lo suficientemente grande, independientemente de si está utilizando Nginx u otro controlador de Ingress.
Asegúrese de actualizar el baseUrl en el archivo de valores generado durante la instalación inicial, que será utilizado por SUSE® Observability para generar instrucciones de instalación convenientes para el agente.
Los ejemplos utilizan el ingressClassName campo para especificar el ingress en lugar de la anotación kubernetes.io/ingress.class obsoleta. Si su clúster tiene definida una clase de Ingress por defecto, se puede omitir el campo del nombre de la clase de Ingress.
Los ejemplos utilizan el ingressClassName campo para especificar el ingress en lugar de la anotación kubernetes.io/ingress.class obsoleta. Si su clúster tiene definida una clase de Ingress por defecto, se puede omitir el campo del nombre de la clase de Ingress.
Incluya el ingress_values.yaml archivo cuando ejecute el comando helm upgrade para desplegar 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
|
Este paso asume que ya se ha ejecutado Generar |
Configurar la regla de Ingress para Open Telemetry
El SUSE® Observability gráfico de Helm expone un servicio opentelemetry-collector en sus valores donde se puede crear un ingress dedicado. Esto está inhabilitado por defecto. El Ingress necesario para fines de opentelemetry-collector debe soportar el protocolo GRPC. Tenga en cuenta que la configuración del controlador en sí y los certificados está más allá del alcance de este documento.
Para configurar el opentelemetry-collector Ingress para SUSE® Observability, cree un archivo ingress_otel_values.yaml con contenidos como los siguientes. Reemplace MY_DOMAIN con su propio dominio (que esté vinculado con su controlador de Ingress) y establezca el nombre correcto para el otlp-tls-secret. Consulte la documentación de su controlador de Ingress para las anotaciones correctas que debe establecer. Todos los campos a continuación son opcionales, por ejemplo, si no se utilizará TLS, omita esa sección, pero tenga en cuenta que SUSE® Observability tampoco cifra el tráfico.
-
Traefik
-
Nginx Ingress
|
Problemas conocidos
Asegúrese de utilizar Traefik < 3.6.3 or >= 3.6.7 (con versión del gráfico de Helm >= 39.0.0), ya que las versiones 3.6.3 a 3.6.6 tienen un problema que causa errores en algunos puntos finales de la API. En particular, las páginas de componentes destacados no se cargan debido a que las llamadas a la API están bloqueadas por Traefik con un error |
|
Exponer el punto final GRPC del OpenTelemetry Collector a través de Traefik es compatible a partir de la versión v2.8.0 del gráfico Helm SUSE® Observability. Tenga en cuenta que la entrada del host GRPC requiere 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
|
El proyecto Ingress Nginx está siendo retirado. Se aconseja a los usuarios que consideren alternativas como 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
Lo que destaca en este archivo es la anotación de Nginx para aumentar el proxy-body-size permitido a 50m (mayor que cualquier solicitud esperada). Por defecto, Nginx permite tamaños de cuerpo de un máximo de 1m. SUSE® Observability Los agentes y otros proveedores de datos pueden a veces enviar solicitudes mucho más grandes. Por esta razón, debe asegurarse de que el tamaño de cuerpo permitido sea lo suficientemente grande, independientemente de si está utilizando Nginx u otro controlador de Ingress.
Asegúrese de actualizar el baseUrl en el archivo de valores generado durante la instalación inicial, que será utilizado por SUSE® Observability para generar instrucciones de instalación convenientes para el agente.
Los ejemplos utilizan el ingressClassName campo para especificar el ingress en lugar de la anotación kubernetes.io/ingress.class obsoleta. Si su clúster tiene una clase de Ingress por defecto definida, se puede omitir el campo del nombre de la clase de Ingress.
Los ejemplos utilizan el ingressClassName campo para especificar el ingress en lugar de la anotación kubernetes.io/ingress.class obsoleta. Si su clúster tiene una clase de Ingress por defecto definida, se puede omitir el campo del nombre de la clase de Ingress.
Incluya el ingress_otel_values.yaml archivo cuando ejecute el comando helm upgrade para desplegar 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
|
Este paso asume que ya se ha ejecutado Generar |
Configurar a través de herramientas externas
Para hacer que SUSE® Observability sea accesible fuera del clúster de Kubernetes en el que está instalado, basta con enrutar el tráfico al puerto 8080 del servicio <namespace>-stackstate-k8s-router. La interfaz de usuario de SUSE® Observability se puede acceder directamente desde la ruta raíz de ese servicio (es decir, http://<namespace>-stackstate-k8s-router:8080), mientras que los agentes utilizarán la ruta /receiver (http://<namespace>-stackstate-k8s-router:8080/receiver).
Asegúrese de actualizar el baseUrl en el archivo de valores generado durante la instalación inicial, que será utilizado por SUSE® Observability para generar instrucciones de instalación convenientes para el agente.
|
Al configurar manualmente un servidor HTTP Nginx o similar como proxy inverso, asegúrese de que pueda hacer proxy de websockets también. Para Nginx, esto se puede configurar incluyendo las siguientes directivas en la
|
|
SUSE® Observability en sí no utiliza tráfico cifrado TLS, se espera que el cifrado TLS sea manejado por el controlador de Ingress o los balanceadores de carga externos. |
Agentes en el mismo clúster
Los agentes que se despliegan en el mismo clúster que SUSE® Observability pueden, por supuesto, utilizar la URL externa en la que SUSE® Observability está expuesto, pero también es posible configurar el agente para conectarse directamente a la instancia de SUSE® Observability solo a través de la red interna de Kubernetes. Para hacer eso, reemplace el valor de 'stackstate.url' en el helm install comando de la Instalación de Agente Kubernetes con la URL interna del clúster para el servicio de enrutador (ver también arriba): http://<namespace>-suse-observability-router.<namespace>.svc.cluster.local:8080/receiver/stsAgent (las <namespace> secciones deben ser reemplazadas con el espacio de nombres de SUSE® Observability).
Reenviando el puerto del servicio de enrutador SUSE® Observability
Por defecto, el gráfico de Helm de SUSE® Observability despliega un pod y un servicio de enrutador. Este servicio expone el puerto 8080, que es el único punto de entrada que necesita ser expuesto a través de Ingress.
También puede acceder a SUSE® Observability a través de reenvío de puertos; al hacerlo, debe permitir localhost como origen de la solicitud.
|
Para acceder a la interfaz de usuario sin configurar Ingress, reenvíe el puerto del servicio de enrutador:
kubectl port-forward service/<helm-release-name>-suse-observability-router 8080:8080 --namespace suse-observability
Al acceder a SUSE® Observability a través de reenvío de puertos, el navegador utiliza http://localhost:8080 como origen de la solicitud.
Para permitir solicitudes desde este origen, añada el elemento a la stackstate.allowedOrigins lista en los valores de Helm, o páselo directamente al comando 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