このガイドでは、OpenShift 4 クラスターでの Azure Red Hat OpenShift (ARO) ネットワークの概要と、重要なエンドポイントの一覧と共に説明します。 主要な OpenShift ネットワークの概念の詳細については、Azure Red Hat OpenShift 4 ネットワークのドキュメントを参照してください。
Azure Red Hat OpenShift を OpenShift 4 上にデプロイすると、クラスター全体が仮想ネットワーク内に配置されます。 この仮想ネットワーク内では、コントロール プレーン ノードとワーカー ノードが、それぞれのサブネット内に存在します。 各サブネットには、内部ロード バランサーとパブリック ロード バランサーが使用されています。
注
ARO に導入された最新の変更については、「Azure Red Hat OpenShift の新機能」を確認してください。
ネットワーク コンポーネント
次の一覧は、Azure Red Hat OpenShift クラスターにおける重要なネットワーク コンポーネントをまとめたものです。
aro-pls
- この Azure Private Link エンドポイントは、クラスターを管理する目的で Microsoft および Red Hat のサイト信頼性エンジニアによって使われます。
aro-internal
- このエンドポイントは、API サーバーへのトラフィックと内部サービス トラフィックのバランスを取ります。 コントロール プレーン ノードとワーカー ノードはバックエンド プールにあります。
- デフォルトではこのロード バランサーは作られません。 これは、正しい注釈を使用して
LoadBalancer
型のサービスを作成した後に作成されます。 たとえば、service.beta.kubernetes.io/azure-load-balancer-internal: "true"
と指定します。
アロ
- このエンドポイントは、すべてのパブリック トラフィックに使用されます。 アプリケーションとルートを作成すると、このエンドポイントがイングレス トラフィックのパスになります。
- このエンドポイントによって、API サーバーへのトラフィックがルーティングおよび分散されます (API がパブリックの場合)。 このエンドポイントは、コントロール プレーンが Azure Resource Manager にアクセスしてクラスターの正常性について返信できるように、パブリック発信 IP を割り当てます。
- また、このロード バランサーは、Azure Load Balancer のアウトバウンド規則を通じて、ワーカー ノードで実行中のすべてのポッドからのエグレス インターネット接続も処理します。
- 現在、アウトバウンド規則は構成できません。 それらでは、各ノードに 1,024 個の TCP ポートが割り当てられます。
- DisableOutboundSnat は LB ルールでは構成されないため、ポッドはこの ALB で構成される任意のパブリック IP をエグレス IP として取得できます。
- 上の 2 点の結果、エフェメラル SNAT ポートを追加する唯一の方法は、パブリック LoadBalancer タイプのサービスを ARO に追加することです。
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 のサイト信頼性エンジニアがクラスターの管理を支援するために使われます。
ネットワーク ポリシー
イングレス: イングレス ネットワーク ポリシーは、OpenShift SDN の一部としてサポートされます。 このネットワーク ポリシーは既定で有効になっており、ユーザーによって実施されます。 イングレス ネットワーク ポリシーは V1 ネットワーク ポリシーに準拠しますが、エグレスおよび IPBlock タイプはサポートされません。
エグレス: エグレス ネットワーク ポリシーは、OpenShift のエグレス ファイアウォール機能を使用してサポートされます。 エグレス ポリシーは、名前空間やプロジェクトごとに 1 つだけ存在します。 エグレス ポリシーは、「デフォルト」の名前空間ではサポートされず、順番に (最初に受信したものから順に) 診断されます。
OpenShift におけるネットワークの基礎
OpenShift Software Defined Networking (SDN) は、Open vSwitch (OVS) を使用するオーバーレイ ネットワークを構成するために使用されます。OVS は、Container Network Interface (CNI) 仕様に基づく OpenFlow 実装です。 SDN はさまざまなプラグインをサポートしています。 ネットワーク ポリシーは Azure Red Hat の OpenShift 4 で使われるプラグインです。 SDN はすべてのネットワーク通信を管理するため、ポッド間通信を実現するために仮想ネットワークに追加のルートは必要ありません。
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 であり、OpenShift SDN 内でのみ使用されます)。
- 各ノードには、ポッド用に /23 サブネット (512 IP) が割り当てられています。 この値は変更できません。
- ポッドを複数のネットワークに接続することはできません。
- OVN-Kubernetes ネットワーク プラグインを使用するプライベート ARO クラスターの場合は、エグレス 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 では、CoreDNS が使用されます。 ドメイン転送を構成できます。 独自の DNS を仮想ネットワークに持ち込むことはありません。 詳細については、DNS 転送の使用に関するドキュメントを参照してください。
次のステップ
アウトバウンド トラフィックについてと、Azure Red Hat OpenShift でエグレス用に何がサポートされているかについては、サポート ポリシーのドキュメントを参照してください。