---
title: ネットワーク
description: OpenLM Platform が行う接続、Pod が自身の Web アドレスに到達する必要がある理由、DNS のルール、ファイアウォール、レジストリミラーについて説明します。
product: OpenLM Platform
---

## 接続

OpenLM Platform は、次の接続に依存します。

| 接続元 | 接続先 | ポート | 用途 |
|---|---|---|---|
| ユーザーのブラウザー | プラットフォームのアドレス | 443 | ユーザーが行うすべての操作 |
| エージェント（ライセンスサーバーエージェント、ワークステーションエージェント） | プラットフォームのアドレス | 443 | 使用状況データの送信 |
| Pod | **プラットフォームのアドレス** | 443 | サインイントークンの確認（次のセクションを参照） |
| Pod | SQL Server | 1433（または独自のポート） | データ |
| Pod | MongoDB | 27017（または独自のポート） | データ |
| Pod | Kafka | 9092（または独自のポート） | サービス間のイベント |
| Pod | Redis | 6379（または独自のポート） | キャッシュ、API ゲートウェイ |
| ノード | `public.ecr.aws` | 443 | イメージのプル |
| ノード | `docker.tyk.io` | 443 | API ゲートウェイのイメージのプル |
| Pod | namespace 内の互いの Pod | さまざま | サービス間通信 |

namespace 内のサービス間トラフィックは、クラスターネットワーク上のプレーン HTTP を使用します。このトラフィックがクラスターの外に出ることはありません。

## クラスター内からプラットフォームのアドレスに到達する

Pod は、OpenLM Platform にそのパブリックアドレスで到達できる必要があります。これは、最も見落とされやすいネットワーク要件です。

いくつかのサービスは、すべてのサインイントークンを、identity サービスの **パブリック** アドレス `https://<DOMAIN>/identity` に問い合わせて確認します。トークン内のアドレスはユーザーがサインインしたアドレスと一致する必要があるため、内部のショートカットは使用しません。そのため、Pod は次の 3 つすべてを実行できる必要があります。

1. `DOMAIN` をアドレスに **名前解決** する。
2. ポート 443 でそのアドレスに **接続** する。
3. その証明書を **信頼** する。[TLS 証明書](https://www.openlm.com/documentation/ja/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/concepts/tls-certificates) を参照してください。

3 つのいずれかが失敗すると、ユーザーはホームページを開けますが、データを読み込むすべての画面が失敗し、サービスのログに `IdentityUnavailable` が記録されます。

### Pod が到達できない場合

ネットワークによっては、Pod からクラスター自身の外部ロードバランサーへのトラフィックが戻ってこないことがあります。これはヘアピン問題と呼ばれ、オンプレミスのロードバランサーや一部のファイアウォールでよく発生します。また、DNS 名が、クラスターの DNS が使用しない内部ゾーンにしか存在しない場合もあります。

これを解決するには、**クラスター内でのみ**、その名前がIngress コントローラーの内部サービスに解決されるようにします。CoreDNS を使用するクラスター（EKS、AKS、K3s）では、書き換えルールを追加します。

```text
rewrite name exact openlm.example.com traefik.kube-system.svc.cluster.local
```

ホスト名を `DOMAIN` に、ターゲットをIngress コントローラーのサービス（`<service>.<namespace>.svc.cluster.local`）に置き換えます。ルールを配置する場所は Kubernetes ディストリビューションによって異なります。[EKS](https://www.openlm.com/documentation/ja/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/platforms/eks)、[AKS](https://www.openlm.com/documentation/ja/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/platforms/aks)、または [K3s](https://www.openlm.com/documentation/ja/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/platforms/k3s#クラスター内の-dns) を参照してください。クラスター外のユーザーには影響しません。

DNS を変更した後は、OpenLM Platform のサービスを再起動して再接続させます: `kubectl -n openlm rollout restart deployment`。

## DNS のルール

DNS 名には、次のルールに従います。

- **50 文字未満**: DNS 名は 50 文字未満にする必要があります。UI の Web サーバーは名前を固定サイズのテーブルに保持するため、長すぎる名前では Web サーバーが起動しません。
- **IPv4**: Pod は IPv4 を使用します。ノードの DNS リゾルバーが IPv6 でしか応答しない場合、Pod は外部の名前を解決できません。クラスターの DNS が IPv4 のリゾルバーを参照するように設定します。
- **すべてに 1 つの名前**: OpenLM Platform を 2 つの名前で公開しないでください。サインイントークンには名前が含まれるため、2 つ目の名前を使用するユーザーはサインインできなくなります。

## データサービス

データサービスへの接続は、次のように設定します。

- **Pod** から到達できる名前（または IP）を使用します。VPN 経由でノート PC から使用できるデータベース名が、クラスター内では解決できない場合があります。
- クラウドのマネージドサービスは、通常、ファイアウォールまたはセキュリティグループの背後にあります。クラスターの **送信元アドレス** を許可します。EKS と AKS では NAT ゲートウェイの IP、それ以外ではノードの IP です。EKS と AKS では、代わりにクラスターのセキュリティグループまたはサブネットを許可することもできます。
- Kafka は、Pod から到達できるアドレスを **アドバタイズ** する必要があります。[データサービス: Kafka](https://www.openlm.com/documentation/ja/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/install/step-2-data-services#23-kafka) を参照してください。

## レジストリミラー

OpenLM のイメージはすべて `public.ecr.aws/r3q3q2f4/olm-*` から取得され、タグは `1.YYMMDD.HHMM` の形式です。ノードがインターネットに到達できない場合は、このパスを自社のレジストリ（Artifactory、Nexus、Quay、Harbor、ECR、ACR）にミラーします。

- `public.ecr.aws` 用の **プルスルーキャッシュまたはリモートリポジトリ** が最も簡単な方法です。イメージ名はそのままで、レジストリのホストだけが変わります。
- コンテナーランタイムのミラー設定、または OpenShift ではクラスターのイメージミラーポリシー（`ImageDigestMirrorSet` / `ImageTagMirrorSet`）で、クラスターがミラーを参照するように設定します。

各リリースのイメージは、そのリリースの [リリースノート](https://www.openlm.com/documentation/ja/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/release-notes/index) に記載されています。

## ネットワークポリシー

チャートは NetworkPolicy を作成しません。クラスターが既定でトラフィックを拒否する場合は、次のトラフィックを許可します。

- Ingress コントローラーから `openlm` 内の Pod へ、サービスが公開するすべてのポートで。
- `openlm` 内の Pod 間。
- `openlm` 内の Pod からデータサービスへ、およびポート 443 で OpenLM Platform のアドレスへ。
