|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
クラスターの外部にSUSE Observability(監視)を公開する
概要
SUSE® ObservabilityはKubernetes Ingressリソースで公開できます。このページの例では、Kubernetes上で実行されているHelm for SUSE Observabilityを使用してTraefikまたはNginx Ingressコントローラーの設定方法を示しています。このページでは、異なる方法でIngressトラフィックを設定する際に公開するサービス/ポートの組み合わせについても文書化しています。
SUSE® Observabilityをホストしているクラスターを監視する際は、エージェントインストール中にxref:/setup/install-stackstate/kubernetes_openshift/ingress.adoc#_agents_in_the_same_cluster[エージェント設定を変更することで、エージェントトラフィックをクラスター内に完全に留めることができます。
SUSE® Observability Helmチャートを介してIngressを構成する
SUSE® Observability Helmチャートは、その値の中に`ingress`セクションを公開します。これはデフォルトでは無効になっています。以下の例では、TLS暗号化が有効なIngressコントローラーを構成するためにHelmチャートを使用する方法を示しています。コントローラー自体と証明書の設定は、この文書の範囲を超えていることに注意してください。
SUSE® ObservabilityのIngressを構成するには、以下のような内容のファイル`ingress_values.yaml`を作成してください。`MY_DOMAIN`を自分のドメイン(Ingressコントローラーにリンクされている)に置き換え、`tls-secret`の正しい名前を設定してください。正しいアノテーションを設定するために、Ingressコントローラーのドキュメントを参照してください。以下のすべてのフィールドはオプションです。たとえば、TLSを使用しない場合はそのセクションを省略できますが、SUSE® Observabilityもトラフィックを暗号化しないことに注意してください。
|
TLSの設定は、Rancher UI拡張機能を使用するために必要であることに注意してください。 |
-
Traefik
-
Nginx Ingress
|
当バージョンの注意事項
Traefik < 3.6.3 or >= 3.6.7(Helmチャートバージョン>= 39.0.0)を使用することを確認してください。バージョン3.6.3から3.6.6には、一部のAPIエンドポイントでエラーを引き起こす問題があります。特に、コンポーネントハイライトページは、Traefikによって`400 Bad Request`エラーでAPI呼び出しがブロックされるため、読み込まれません。 |
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
|
Ingress Nginxプロジェクトはhttps://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/[廃止される予定です]。ユーザーは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
このファイルで目立つのは、許可される`proxy-body-size`を`50m`(予想されるリクエストよりも大きい)に増やすためのNginxアノテーションです。デフォルトでは、Nginxは最大`1m`のボディサイズを許可します。SUSE® Observability エージェントや他のデータプロバイダーは、時々はるかに大きなリクエストを送信することがあります。この理由から、Nginxまたは他のイングレスコントローラーを使用しているかどうかに関わらず、許可されるボディサイズが十分に大きいことを確認する必要があります。
初回インストール中に生成された値ファイルで`baseUrl`を更新してください。これはSUSE® Observabilityによってエージェントの便利なインストール手順を生成するために使用されます。
例では、廃止された`kubernetes.io/ingress.class`アノテーションの代わりに、https://kubernetes.io/docs/concepts/services-networking/ingress/#_ingress_class[ingress]を指定するために`ingressClassName`フィールドを使用しています。クラスターにデフォルトのイングレスクラスが定義されている場合、イングレスクラス名フィールドは省略できます。 例では、廃止された`kubernetes.io/ingress.class`アノテーションの代わりに、https://kubernetes.io/docs/concepts/services-networking/ingress/#_ingress_class[ingress]を指定するために`ingressClassName`フィールドを使用しています。クラスターにデフォルトのイングレスクラスが定義されている場合、イングレスクラス名フィールドは省略できます。
SUSE® Observabilityをデプロイするために`helm upgrade`コマンドを実行する際に`ingress_values.yaml`ファイルを含めてください。
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
|
このステップは、Generate |
オープンテレメトリのためのイングレスルールを構成します。
SUSE® Observability Helmチャートは、その値の中で`opentelemetry-collector`サービスを公開し、専用の`ingress`を作成できます。これはデフォルトでは無効になっています。`opentelemetry-collector`目的に必要なイングレスは、GRPCプロトコルをサポートする必要があります。コントローラー自体と証明書の設定は、この文書の範囲を超えていることに注意してください。
SUSE® Observabilityのために`opentelemetry-collector`イングレスを構成するには、以下のような内容のファイル`ingress_otel_values.yaml`を作成してください。`MY_DOMAIN`を自分のドメイン(イングレスコントローラーにリンクされている)に置き換え、`otlp-tls-secret`の正しい名前を設定してください。正しいアノテーションを設定するために、Ingressコントローラーのドキュメントを参照してください。以下のすべてのフィールドはオプションです。たとえば、TLSを使用しない場合はそのセクションを省略できますが、SUSE® Observabilityもトラフィックを暗号化しないことに注意してください。
-
Traefik
-
Nginx Ingress
|
当バージョンの注意事項
Traefik < 3.6.3 or >= 3.6.7(Helmチャートバージョン>= 39.0.0)を使用することを確認してください。バージョン3.6.3から3.6.6には、一部のAPIエンドポイントでエラーを引き起こす問題があります。特に、コンポーネントハイライトページは、Traefikによって`400 Bad Request`エラーでAPI呼び出しがブロックされるため、読み込まれません。 |
|
OpenTelemetry Collector GRPCエンドポイントをTraefik経由で公開することは、SUSE® Observability Helmチャートバージョンv2.8.0以降でサポートされています。 GRPCホストエントリは、トラフィックを正しいバックエンドサービスにルーティングするために明示的な`serviceName: suse-observability-otel-collector-grpc`を必要とすることに注意してください。 |
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
|
Ingress Nginxプロジェクトはhttps://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/[廃止される予定です]。ユーザーは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
このファイルで目立つのは、許可される`proxy-body-size`を`50m`(予想されるリクエストよりも大きい)に増やすためのNginxアノテーションです。デフォルトでは、Nginxは最大`1m`のボディサイズを許可します。SUSE® Observability エージェントや他のデータプロバイダーは、時々はるかに大きなリクエストを送信することがあります。この理由から、Nginxまたは他のイングレスコントローラーを使用しているかどうかに関わらず、許可されるボディサイズが十分に大きいことを確認する必要があります。
初回インストール時に生成された値ファイル内の`baseUrl`を更新することを確認してください。これはSUSE® Observabilityによってエージェントの便利なインストール手順を生成するために使用されます。
例では、廃止された`kubernetes.io/ingress.class`アノテーションの代わりに、https://kubernetes.io/docs/concepts/services-networking/ingress/#_ingress_class[ingress]を指定するために`ingressClassName`フィールドを使用しています。クラスターにデフォルトのイングレスクラスが定義されている場合、イングレスクラス名フィールドは省略できます。 例では、廃止された`kubernetes.io/ingress.class`アノテーションの代わりに、https://kubernetes.io/docs/concepts/services-networking/ingress/#_ingress_class[ingress]を指定するために`ingressClassName`フィールドを使用しています。クラスターにデフォルトのイングレスクラスが定義されている場合、イングレスクラス名フィールドは省略できます。
SUSE® Observabilityをデプロイするために`helm upgrade`コマンドを実行する際に`ingress_otel_values.yaml`ファイルを含めてください。
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
|
このステップは、Generate |
外部ツールを介して構成します。
Kubernetesクラスターの外部でSUSE® Observabilityにアクセス可能にするには、その`<namespace>-stackstate-k8s-router`サービスのポート`8080`にトラフィックをルーティングするだけで十分です。SUSE® ObservabilityのUIは、そのサービスのルートパス(すなわち`http://<namespace>-stackstate-k8s-router:8080`)の下で直接アクセスできますが、エージェントは`/receiver`パス(http://<namespace>-stackstate-k8s-router:8080/receiver)を使用します。
初回インストール時に生成された値ファイル内の`baseUrl`を更新することを確認してください。これはSUSE® Observabilityによってエージェントの便利なインストール手順を生成するために使用されます。
|
Nginxや同様のHTTPサーバーをリバースプロキシとして手動で設定する際は、WebSocketもプロキシできることを確認してください。Nginxの場合、次のディレクティブを`location`ディレクティブに含めることで設定できます:
|
|
SUSE® Observability自体はTLS暗号化トラフィックを使用せず、TLS暗号化はイングレスコントローラーまたは外部ロードバランサーによって処理されることが期待されています。 |
同じクラスター内のエージェント
SUSE® Observabilityと同じクラスターにデプロイされたエージェントは、もちろんSUSE® Observabilityが公開されている外部URLを使用できますが、Kubernetes内部ネットワークを介してSUSE® Observabilityインスタンスに直接接続するようにエージェントを設定することも可能です。そのためには、Agent Kubernetes installationの`helm install`コマンド内の’stackstate.url'`の値を、ルーターサービスの内部クラスターURLに置き換えます(上記も参照):http://<namespace>-suse-observability-router.<namespace>.svc.cluster.local:8080/receiver/stsAgent(SUSE® Observabilityの名前空間で`<namespace>`セクションを置き換える必要があります)。
ルーターSUSE® Observabilityサービスポートの転送
デフォルトでは、SUSE® Observability Helm チャートはルーター ポッドとサービスをデプロイします。このサービスはポート`8080`を公開しており、Ingressを介して公開する必要がある唯一のエントリポイントです。 ポートフォワーディングを介してSUSE® Observabilityにアクセスすることもできます。その際、リクエストの発信元としてlocalhostを許可する必要があります。
|
Ingressを設定せずにUIにアクセスするには、ルーターサービスポートを転送します:
kubectl port-forward service/<helm-release-name>-suse-observability-router 8080:8080 --namespace suse-observability
ポートフォワーディングを介してSUSE® Observabilityにアクセスする際、ブラウザは`http://localhost:8080`をリクエストの発信元として使用します。 この発信元からのリクエストを許可するには、Helmの値の`stackstate.allowedOrigins`リストに追加するか、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