この記事では、OpenShift 4 クラスターでのAzure Red Hat OpenShift ネットワークの概要について説明します。 これには、図と重要なエンドポイントの一覧が含まれています。 主要な OpenShift ネットワークの概念の詳細については、Azure Red Hat OpenShift 4 ネットワークのドキュメントを参照してください。
Azure Red Hat OpenShift を OpenShift 4 上にデプロイすると、クラスター全体が仮想ネットワーク内に配置されます。 この仮想ネットワーク内では、コントロール プレーン ノードとワーカー ノードが、それぞれのサブネット内に存在します。 各サブネットには、内部ロード バランサーとパブリック ロード バランサーが使用されています。
注
最新の変更については、「 Azure Red Hat OpenShift の新機能」を参照してください。
ネットワーク コンポーネント
次の一覧は、Azure Red Hat OpenShift クラスターにおける重要なネットワーク コンポーネントをまとめたものです。
aro-pls
- この Azure Private Link エンドポイントは、クラスターを管理する目的で Microsoft および Red Hat のサイト信頼性エンジニアによって使われます。
aro-internal
- クラスターのインストール プロセスによって、この内部ロード バランサーが作成されます。 内部ネットワーク (api-int) 上の API サーバーへのトラフィックのバランスを取り、内部サービス トラフィックを伝送します。 コントロール プレーン ノードとワーカー ノードはバックエンド プールにあります。
- cloud-controller-manager は、注釈
service.beta.kubernetes.io/azure-load-balancer-internal: "true"を使用してLoadBalancer型の Kubernetes サービスを作成するときに、追加の内部ロード バランサー フロントエンド IP を作成する場合があります。 これらの IP は、RP で管理されるinternal-lb-ip-v4とは別です。
アロ
- このエンドポイントは、すべてのパブリック トラフィックに使用されます。 アプリケーションとルートを作成すると、このエンドポイントがイングレス トラフィックのパスになります。
- このエンドポイントによって、API サーバーへのトラフィックがルーティングおよび分散されます (API がパブリックの場合)。 このエンドポイントは、コントロール プレーンが Azure Resource Manager にアクセスしてクラスターの正常性について返信できるように、パブリック発信 IP を割り当てます。
- また、このロード バランサーは、Azure Load Balancer のアウトバウンド規則を通じて、ワーカー ノードで実行中のすべてのポッドからのエグレス インターネット接続も処理します。
- 現在、アウトバウンド規則は構成できません。 それらでは、各ノードに 1,024 個の TCP ポートが割り当てられます。
- DisableOutboundSnat は LB ルールでは構成されないため、ポッドはこの ALB で構成される任意のパブリック IP をエグレス IP として取得できます。
- 前の 2 つの点の結果として、エフェメラル SNAT ポートを追加する唯一の方法は、パブリック LoadBalancer 型サービスを Azure Red Hat OpenShift に追加することです。
aro-nsg
- サービスを公開すると、API によってこのネットワーク セキュリティ グループに規則が作成され、トラフィックがポート 6443 経由でコントロール プレーンやノードを通過したりそれらに到達したりできるようになります。
- 既定では、このネットワーク セキュリティ グループで、すべてのアウトバウンド トラフィックが許可されます。 現時点では、アウトバウンド トラフィックは Azure Red Hat OpenShift コントロール プレーンのみに制限できます。
Azure Container Registry
- コンテナー レジストリは、Microsoft によって内部的に提供および使用されます。 読み取り専用であり、Azure Red Hat OpenShift ユーザーによる使用は想定されていません。
- このレジストリは、ホスト プラットフォーム イメージとクラスター コンポーネントを提供します。 たとえば、コンテナーの監視やログ記録などです。
- このレジストリへの接続は、プライベート エンドポイント経由で行われます (Azure サービス間の内部接続)。
- デフォルトでは、この内部レジストリはクラスターの外部では使えません。
- コンテナー レジストリは、Microsoft によって内部的に提供および使用されます。 読み取り専用であり、Azure Red Hat OpenShift ユーザーによる使用は想定されていません。
Private Link
- Private Link は管理プレーンからクラスターへのネットワーク接続を許可します。 これは、Microsoft および Red Hat のサイト信頼性エンジニアがクラスターの管理を支援するために使われます。
ネットワーク ポリシー
イングレス: OVN-Kubernetes ネットワーク プラグインはイングレス ネットワーク ポリシーをサポートします。 ネットワーク ポリシーは既定で有効になっており、ユーザーはそれを適用します。 イングレス ネットワーク ポリシーは、V1 NetworkPolicy に準拠しています。
エグレス: OpenShift では、エグレス ファイアウォール機能を介した エグレス ネットワーク ポリシーがサポートされます。 各名前空間またはプロジェクトは、エグレス ポリシーを 1 つだけ持つことができます。 "既定" 名前空間はエグレス ポリシーをサポートしていません。 システムは、最初から最後の順にエグレス ポリシーを評価します。
OpenShift におけるネットワークの基礎
Azure Red Hat OpenShiftは、OVN-Kubernetes をクラスター ネットワーク プラグインとして使用します。 OVN-Kubernetes は Geneve トンネルを使用してオーバーレイ ネットワークを提供し、Container Network Interface (CNI) 仕様を実装します。 OVN-Kubernetes には、ネットワーク ポリシーの適用が組み込まれています。 オーバーレイはポッド間通信を管理するため、仮想ネットワークに追加のルートは必要ありません。
Azure Red Hat OpenShift のネットワーク
以下のネットワーク機能は、Azure Red Hat OpenShift に固有です。
- クラスターを作る場合、既存の仮想ネットワークに Azure Red Hat OpenShift クラスターを作るか、新しい仮想ネットワークを作ることができます。
- ポッドとサービス ネットワーク CIDR は構成可能です。
- ノードとコントロール プレーンは、異なるサブネットに存在します。
- ノードとコントロール プレーンの仮想ネットワーク サブネットは、最小で /27 である必要があります。
- デフォルト値のポッド CIDR は 10.128.0.0/14 です。
- デフォルト値のサービス CIDR は 172.30.0.0/16 です。
- ポッドとサービス ネットワークの CIDR は、ネットワークで使われている他のアドレスの範囲と重なってはいけません。 クラスターの仮想ネットワークの IP アドレスの範囲内にあってはいけません。
- ポッド CIDR のサイズは /18 以上にする必要があります。 (ポッド ネットワークはルーティング不可能な IP であり、クラスター オーバーレイ ネットワーク内でのみ使用されます)。
- 各ノードには、ポッド用に /23 サブネット (512 IP) が割り当てられています。 この値は変更できません。
- ポッドを複数のネットワークに接続することはできません。
- OVN-Kubernetes ネットワーク プラグインを使用するプライベート クラスターの場合は、エグレス IP を構成できます。 詳細については、 エグレス IP アドレスの構成を参照してください。
ネットワーク設定
Azure Red Hat OpenShift 4 クラスターでは、以下のネットワーク設定を使用できます。
-
API の可視性 - az aro create コマンドを実行するときの API の可視性を設定します。
- パブリック - API Server には外部ネットワークからアクセスできます。
- プライベート - API Server は、コントロール プレーン サブネットからプライベート IP を割り当て、接続されたネットワーク (ピアリングされた仮想ネットワークとクラスター内の他のサブネット) を使用してのみアクセスできます。
-
イングレスの可視性 - az aro create コマンドを実行するときの API の可視性を設定します。
- パブリック ルートは、既定でパブリック Standard Load Balancer に設定されます。 (このデフォルト値は変更可能です。)
- プライベート ルートは、既定で内部ロード バランサーに設定されます。 (このデフォルト値は変更可能です。)
ネットワーク セキュリティ グループ
ネットワーク セキュリティ グループは、ノードのリソース グループに作成されます。これは、ユーザーに対してはロックされています。 ネットワーク セキュリティ グループは、ノードの NIC ではなく、サブネットに直接割り当てられます。 ネットワーク セキュリティ グループは変更できません。 ユーザーが変更することは許可されていません。
公開されている API サーバーについては、ネットワーク セキュリティ グループを作って NIC に割り当てることはできません。
ドメイン転送
Azure Red Hat OpenShiftはクラスター内 DNS プロバイダーとして CoreDNS を使用しますが、置き換えることはできません。 ドメイン転送を構成して、特定のドメインのクエリを独自の DNS サーバーに直接送信できます。 詳細については、DNS 転送の使用に関するドキュメントを参照してください。
次のステップ
アウトバウンド トラフィックについてと、Azure Red Hat OpenShift でエグレス用に何がサポートされているかについては、サポート ポリシーのドキュメントを参照してください。