|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
Expose o SUSE Observability fora do cluster
Visão Geral
SUSE® Observability pode ser exposto com um recurso de Ingress do Kubernetes. Os exemplos nesta página mostram como configurar um controlador de Ingress Traefik ou Nginx usando Helm para SUSE Observabilidade rodando no Kubernetes. Esta página também documenta qual combinação de serviço/porta expor ao usar um método diferente de configuração do tráfego de ingress.
Ao observar o cluster que também hospeda SUSE® Observability, o tráfego do agente pode ser mantido inteiramente dentro do próprio cluster ao alterar a configuração do agente durante a instalação do agente.
Configure o ingress via o SUSE® Observability gráfico Helm
O SUSE® Observability gráfico Helm expõe uma seção ingress em seus valores. Isso está desabilitado por padrão. Os exemplos abaixo mostram como usar o gráfico Helm para configurar um controlador de ingress com a criptografia TLS habilitada. Observe que a configuração do controlador em si e dos certificados está além do escopo deste documento.
Para configurar o ingress para SUSE® Observability, crie um arquivo ingress_values.yaml com conteúdo como abaixo. Substitua MY_DOMAIN pelo seu próprio domínio (que está vinculado ao seu controlador de ingress) e defina o nome correto para o tls-secret. Consulte a documentação do seu controlador de ingress para as anotações corretas a serem definidas. Todos os campos abaixo são opcionais, por exemplo, se nenhum TLS for usado, omita essa seção, mas esteja ciente de que SUSE® Observability também não criptografa o tráfego.
|
Observe que a configuração do TLS é necessária para o uso da extensão da interface do usuário do Rancher. |
-
Traefik
-
Ingress do Nginx
|
Problemas conhecidos
Certifique-se de usar o Traefik < 3.6.3 or >= 3.6.7 (com versão do gráfico Helm >= 39.0.0), pois as versões 3.6.3 a 3.6.6 têm um problema que causa erros em alguns endpoints da API. Em particular, as páginas de destaque do componente falham ao carregar devido a chamadas de API sendo bloqueadas pelo Traefik com um erro |
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
|
O projeto Ingress Nginx está sendo descontinuado. Os usuários são aconselhados a considerar alternativas como o 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
O que se destaca neste arquivo é a anotação do Nginx para aumentar o proxy-body-size permitido para 50m (maior do que qualquer solicitação esperada). Por padrão, o Nginx permite tamanhos de corpo de no máximo 1m. SUSE® Observability Agentes e outros provedores de dados podem às vezes enviar solicitações muito maiores. Por essa razão, você deve garantir que o tamanho do corpo permitido seja grande o suficiente, independentemente de estar usando o Nginx ou outro controlador de ingress.
Certifique-se de atualizar o baseUrl no arquivo de valores gerado durante a instalação inicial, ele será usado pelo SUSE® Observability para gerar instruções de instalação convenientes para o agente.
Os exemplos usam o campo ingressClassName para especificar o ingress em vez da anotação kubernetes.io/ingress.class descontinuada. Se seu cluster tiver uma classe de ingress padrão definida, o campo do nome da classe de ingress pode ser omitido.
Os exemplos usam o campo ingressClassName para especificar o ingress em vez da anotação kubernetes.io/ingress.class descontinuada. Se seu cluster tiver uma classe de ingress padrão definida, o campo do nome da classe de ingress pode ser omitido.
Inclua o arquivo ingress_values.yaml quando você executar o comando helm upgrade para implantar 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
|
Esta etapa assume que Gerar |
Configurar a Regra de Ingress para Open Telemetry
O SUSE® Observability gráfico Helm expõe um serviço opentelemetry-collector em seus valores onde um ingress dedicado pode ser criado. Isso está desabilitado por padrão. O ingress necessário para fins de opentelemetry-collector precisa suportar o protocolo GRPC. Observe que a configuração do controlador em si e dos certificados está além do escopo deste documento.
Para configurar o opentelemetry-collector ingress para SUSE® Observability, crie um arquivo ingress_otel_values.yaml com o conteúdo conforme abaixo. Substitua MY_DOMAIN pelo seu próprio domínio (que está vinculado ao seu controlador de entrada) e defina o nome correto para o otlp-tls-secret. Consulte a documentação do seu controlador de entrada para as anotações corretas a serem definidas. Todos os campos abaixo são opcionais, por exemplo, se nenhum TLS for usado, omita essa seção, mas esteja ciente de que SUSE® Observability também não criptografa o tráfego.
-
Traefik
-
Ingress do Nginx
|
Problemas conhecidos
Certifique-se de usar o Traefik < 3.6.3 or >= 3.6.7 (com versão do gráfico Helm >= 39.0.0), pois as versões 3.6.3 a 3.6.6 têm um problema que causa erros em alguns endpoints da API. Em particular, as páginas de destaque do componente falham ao carregar devido a chamadas de API sendo bloqueadas pelo Traefik com um erro |
|
Expor o endpoint GRPC do OpenTelemetry Collector via Traefik é suportado a partir da versão v2.8.0 do SUSE® Observability gráfico Helm. Observe que a entrada do host GRPC requer um |
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
|
O projeto Ingress Nginx está sendo descontinuado. Os usuários são aconselhados a considerar alternativas como o 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
O que se destaca neste arquivo é a anotação do Nginx para aumentar o proxy-body-size permitido para 50m (maior do que qualquer solicitação esperada). Por padrão, o Nginx permite tamanhos de corpo de no máximo 1m. SUSE® Observability Agentes e outros provedores de dados podem às vezes enviar solicitações muito maiores. Por essa razão, você deve garantir que o tamanho do corpo permitido seja grande o suficiente, independentemente de estar usando o Nginx ou outro controlador de entrada.
Certifique-se de atualizar o baseUrl no arquivo de valores gerado durante a instalação inicial, ele será usado pelo SUSE® Observability para gerar instruções de instalação convenientes para o agente.
Os exemplos usam o campo ingressClassName para especificar o ingress em vez da anotação kubernetes.io/ingress.class descontinuada. Se seu cluster tiver uma classe de ingress padrão definida, o campo do nome da classe de ingress pode ser omitido.
Os exemplos usam o campo ingressClassName para especificar o ingress em vez da anotação kubernetes.io/ingress.class descontinuada. Se seu cluster tiver uma classe de ingress padrão definida, o campo do nome da classe de ingress pode ser omitido.
Inclua o arquivo ingress_otel_values.yaml quando você executar o comando helm upgrade para implantar 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
|
Esta etapa assume que Gerar |
Configure via ferramentas externas
Para tornar SUSE® Observability acessível fora do cluster Kubernetes em que está instalado, basta direcionar o tráfego para a porta 8080 do serviço <namespace>-stackstate-k8s-router. A interface do usuário de SUSE® Observability pode ser acessada diretamente sob o caminho raiz desse serviço (ou seja, http://<namespace>-stackstate-k8s-router:8080), enquanto os agentes usarão o caminho /receiver (http://<namespace>-stackstate-k8s-router:8080/receiver).
Certifique-se de atualizar o baseUrl no arquivo de valores gerado durante a instalação inicial, ele será usado pelo SUSE® Observability para gerar instruções de instalação convenientes para o agente.
|
Ao configurar manualmente um servidor HTTP Nginx ou similar como proxy reverso, certifique-se de que ele possa também fazer proxy de websockets. Para o Nginx, isso pode ser configurado incluindo as seguintes diretivas na diretiva
|
|
O SUSE® Observability em si não utiliza tráfego criptografado em TLS; a criptografia TLS deve ser gerenciada pelo controlador de ingress ou por balanceadores de carga externos. |
Agentes no mesmo cluster
Agentes que estão implantados no mesmo cluster que SUSE® Observability podem, é claro, usar a URL externa na qual SUSE® Observability está exposto, mas também é possível configurar o agente para se conectar diretamente à instância SUSE® Observability apenas através da rede interna do Kubernetes. Para fazer isso, substitua o valor de 'stackstate.url' no comando helm install do Instalação do Agente Kubernetes pela URL interna do cluster para o serviço de roteador (veja também acima): http://<namespace>-suse-observability-router.<namespace>.svc.cluster.local:8080/receiver/stsAgent (as seções <namespace> precisam ser substituídas pelo namespace de SUSE® Observability).
Encaminhando a SUSE® Observability porta do serviço de roteador
Por padrão, o SUSE® Observability gráfico Helm implanta um pod e um serviço de roteador. Este serviço expõe a porta 8080, que é o único ponto de entrada que precisa ser exposto via Ingress.
Você também pode acessar SUSE® Observability via encaminhamento de porta; ao fazer isso, deve permitir localhost como origem da solicitação.
|
Para acessar a interface do usuário sem configurar o Ingress, encaminhe a porta do serviço de roteador:
kubectl port-forward service/<helm-release-name>-suse-observability-router 8080:8080 --namespace suse-observability
Ao acessar SUSE® Observability via encaminhamento de porta, o navegador usa http://localhost:8080 como origem da solicitação.
Para permitir solicitações dessa origem, adicione-a à lista stackstate.allowedOrigins nos valores do Helm, ou passe-a diretamente para o 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