メインコンテンツまでスキップ

ネットワーク

OpenLM Platform のファイアウォールとネットワークを計画するには、すべてのデプロイパスに共通する次の要件を使用します。

OpenLM Platform へのトラフィックの流れ​

OpenLM Platform は、単一の HTTPS(443 番ポート)Ingress エンドポイントを公開します。クラスタネットワーク外からアクセス可能である必要があるのは、このポートだけです。Broker、Workstation Agent、Directory Synchronization Agent、Web UI ユーザーの通信は、すべてこの単一エンドポイント経由で行われます。

:::note HTTP から HTTPS へのリダイレクト 通常、Ingress controller は 80 番ポート(HTTP)も公開し、HTTP リクエストを HTTPS にリダイレクトします。アプリケーショントラフィック自体は HTTP では提供されません。 :::

Kubernetes クラスタ、そのノード、インフラサービス、内部ネットワークは、完全に閉じたプライベートネットワーク内に配置できます。OpenLM はクラスタ内部に対する外部からの inbound アクセスを必要とせず、リモート管理も行いません。唯一の inbound 公開面は、デプロイ時に構成する HTTPS Ingress です。ただしクラスタは、イメージ取得のためにパブリックなコンテナレジストリへ outbound 接続を行います(Outbound トラフィック を参照)。OpenLM 側へ通信を返すことはありません。

Inbound トラフィック​

すべての inbound トラフィックは、単一の HTTPS(443)Ingress エンドポイントから入ります。

送信元プロトコルポート用途
BrokerHTTPS443ライセンスサーバーイベントの収集。ライセンスサーバーが稼働するマシンにインストール
Workstation AgentHTTPS443ワークステーション利用イベントの収集。エンドユーザー端末にインストール
Directory Synchronization Agent (DSA)HTTPS443ディレクトリスキャンと同期イベント。ディレクトリアクセス可能なマシンにインストール
Web UIHTTPS443管理画面、ダッシュボード、レポートにアクセスするユーザー

すべてのエージェントとユーザーは、デプロイ時に設定した同じ完全修飾ドメイン名(FQDN)に接続します。クラスタネットワークの外部から Kubernetes ノード、API server、データベース、内部サービスへ直接アクセスする必要はありません。

Outbound トラフィック​

Kubernetes クラスタが必要とする outbound アクセスは、コンテナイメージ取得用のみです。

宛先プロトコルポート用途
public.ecr.aws/r3q3q2f4HTTPS443OpenLM コンテナイメージレジストリ
docker.tyk.ioHTTPS443API ゲートウェイ(Tyk)のイメージ
docker.ioHTTPS443インフラサービスのコンテナイメージ(Redis、Kafka、MongoDB、MariaDB、PostgreSQL)と API ゲートウェイの busybox init コンテナ
3 つのレジストリすべてが必要です

インフラサービスは OpenLM のレジストリではなくパブリックな Docker Hub のイメージから、API ゲートウェイは Tyk のレジストリから起動します。public.ecr.aws のみを許可リストに登録すると、Redis、Kafka、MongoDB、MariaDB、PostgreSQL、API ゲートウェイが ImagePullBackOff となり、インストールが失敗します。

実行時に、クラスタから他の outbound 接続は必要ありません。OpenLM Platform は外部の OpenLM サーバーとは通信せず、完全にお客様ネットワーク内で動作します。HTTP プロキシやファイアウォールの許可リストを使う環境では、上記の 3 つのレジストリエンドポイント(public.ecr.aws、docker.tyk.io、docker.io)を追加してください。

:::note 外部連携 OpenLM Platform は ServiceNow などの外部サービスとも連携できます。そのような連携を有効にする場合は、それらのエンドポイントへの outbound アクセスも必要です。必要に応じて、連携先をファイアウォール許可リストに追加してください。 :::

ヒント

エアギャップ環境では、コンテナイメージを事前にプライベートレジストリへロードできます。オフライン配布については OpenLM に相談してください。

TLS 証明書​

TLS 証明書は、エージェントマシン、ユーザーブラウザ、そしてクラスタ内部で FQDN にコールバックするサービスを含む、OpenLM Platform に接続するすべてのマシンから信頼されている必要があります。信頼されていないと、HTTPS 接続は失敗します。

要件、設定手順、トラブルシューティングの詳細は TLS certificates を参照してください。

オンプレミスマシン​

上記の OpenLM Platform 共通要件に加え、オンプレミス Kubernetes クラスタではノード間通信と管理用アクセスが必要です。

ノード間ポート(全ノード)​

ポートプロトコル用途
6443TCPKubernetes API server
8472UDPFlannel VXLAN overlay network
10250TCPKubelet metrics
51820UDPFlannel WireGuard(有効時)

ロール別ポート​

ノードロールポートプロトコル用途
Control plane80TCPHTTP Ingress(HTTPS へリダイレクト)
Control plane443TCPHTTPS Ingress(agents, UI, API)
Infrastructure30432TCPPower BI などの外部レポートツール用 PostgreSQL NodePort

ネットワークトポロジー​

  • すべてのノードは同一のレイヤー 2(L2)ネットワーク上に置くか、ノード間でポート制限のない完全な相互接続を確保する必要があります
  • Control plane ノードが Ingress の入口です。DNS はこのノードの IP アドレス、またはその前段のロードバランサーに解決される必要があります
  • 管理用アクセスとして、全ノードへの SSH(22 番ポート)が必要です

Outbound(プロビジョニング時)​

初期セットアップ時には、ノードは次へのアクセスも必要です。

宛先用途
public.ecr.aws/r3q3q2f4OpenLM コンテナイメージ
docker.tyk.ioAPI ゲートウェイ(Tyk)のイメージ
docker.ioインフラサービスのコンテナイメージ(Redis、Kafka、MongoDB、MariaDB、PostgreSQL)
get.k3s.ioK3s インストールスクリプト(Platform as VM を含む K3s 系のインストール)
get.helm.shHelm バイナリのダウンロード
openlm-helm.github.ioumbrella チャートのサブチャートメタデータ(チャートインストール時のみ)
pypi.org、files.pythonhosted.orgAnsible ベースのインストーラーが使用する Python パッケージ
AlmaLinux と RHEL の mirrorsOS パッケージ更新(dnf)

インストール後も、Pod の再スケジュールや再起動時にイメージを取得できるよう、3 つのコンテナレジストリエンドポイントは引き続き必要です。その他はプロビジョニング時のみ必要です。

プライベートクラウド (AWS)​

AWS では、ネットワークは public / private subnets を持つ仮想プライベートクラウド(VPC)で構成されます。

VPC レイアウト​

AWS のネットワークは、次のコンポーネントを使用します。

コンポーネント詳細
VPC Classless Inter-Domain Routing(CIDR)/22 ブロック(例: 10.0.0.0/22)
Private subnets3 つ(各 availability zone に 1 つ)。EKS ノードとマネージドサービス用
Public subnets3 つ。ロードバランサーとネットワークアドレス変換(NAT)gateway 用
NAT gateway1 つ。private subnets からの outbound internet 用
S3 endpointNAT を使わずに S3 へアクセスするための gateway endpoint

Security groups​

次の security group ルールで、クラスタと使用するマネージドサービスの間の通信を制御します。クラスタ内 Kafka のようにクラスタ内で実行するサービスには、security group ルールは不要です。

サービス許可ソースポートプロトコル
EKS API server設定した CIDRs (eks_public_access_cidrs)443TCP
RDS SQL ServerEKS cluster security group1433TCP
MSK (Kafka)(使用する場合)EKS cluster security group9096TCP
ElastiCache (Valkey)EKS cluster security group6379TCP

Ingress​

外部トラフィック(エージェントとユーザー)は、public subnets 上の AWS load balancer を通って入り、private subnets 上の Ingress controller に 443 と 80 で転送されます。

Outbound​

  • Private subnets 上のワークロードノードは NAT gateway 経由でインターネットへ到達します
  • コンテナイメージは NAT 経由で public.ecr.aws/r3q3q2f4、docker.tyk.io、docker.io から取得されます

プライベートクラウド (Azure)​

Azure では、AKS の Azure Container Networking Interface(CNI)モードを使った仮想ネットワーク(VNet)構成を利用します。

VNet レイアウト​

Azure のネットワークは、次のコンポーネントを使用します。

コンポーネント詳細
VNet CIDR/22 ブロック(例: 10.0.0.0/22)。1,024 個の IP アドレスを提供
ネットワークモードAzure CNI(各 Pod が VNet IP を持つ)
IP 容量Pod、ノード、拡張分を含めて約 400 個の IP アドレス

ネットワークサイジング​

Azure CNI では、すべての Pod が VNet から IP アドレスを消費します。

  • ノードあたり約 29 個の Pod IP
  • 6 から 7 ノードで約 174 から 203 個の Pod IP
  • 約 143 個の稼働 Pod とノード IP は、拡張余地を残したまま /22 ブロックに収まる

Ingress​

外部トラフィックは、443 と 80 で Azure load balancer または Application Gateway に入り、AKS の Ingress controller に転送されます。

マネージドサービス接続​

Azure SQL Managed Instance と Azure Cache for Redis は、private endpoints または VNet integration 経由で利用します。マネージドサービスをパブリックインターネットへ公開する必要はありません。

Outbound​

  • AKS ノードは public.ecr.aws/r3q3q2f4、docker.tyk.io、docker.io からコンテナイメージを取得します
  • AKS の outbound type とファイアウォールルールを設定し、3 つのレジストリエンドポイントへのアクセスを許可してください

ドキュメントチームは、大規模言語モデルを使ってこのページを下書きすることがあります。公開前に、テクニカルライターがすべてのページをレビューし、製品と照らし合わせて検証します。最終的な判断は人間が行います。