Azure Red Hat OpenShift のネットワークの概念
このガイドでは、OpenShift 4 クラスターにおける Azure Red Hat OpenShift ネットワークの概要について、ダイアグラムと重要なエンドポイントの一覧を交えて説明します。 主要な 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 サーバーへのトラフィックと内部サービス トラフィックのバランスを取ります。 コントロール プレーン ノードとワーカー ノードはバックエンド プールにあります。
- デフォルトではこのロード バランサーは作られません。 正しい注釈をつけたロード バランサー型のサービスを作ると、このロード バランサーが作られます。 たとえば、service.beta.kubernetes.io/azure-load-balancer-internal: "true" などです。
aro
- このエンドポイントは、すべてのパブリック トラフィックに使用されます。 アプリケーションとルートを作成すると、このエンドポイントがイングレス トラフィックのパスになります。
- このエンドポイントによって、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 サーバーにアクセスできます。
- "プライベート" - コントロール プレーン サブネットからプライベート IP を割り当てられた API サーバーであり、接続されているネットワーク (ピアされた仮想ネットワークおよびクラスター内のその他のサブネット) を使ってのみアクセス可能です。
- イングレスの可視性 - az aro create コマンドを実行するときの API の可視性を設定します。
- "パブリック" は、デフォルトで公開用の Standard Load Balancer につながります。 (このデフォルト値は変更可能です。)
- "プライベート" は、デフォルトで内部のロード バランサーにつながります。 (このデフォルト値は変更可能です。)
ネットワーク セキュリティ グループ
ネットワーク セキュリティ グループは、ノードのリソース グループに作成されます。これは、ユーザーに対してはロックされています。 ネットワーク セキュリティ グループは、ノードの NIC ではなく、サブネットに直接割り当てられます。 ネットワーク セキュリティ グループは変更できません。 ユーザーが変更することは許可されていません。
公開されている API サーバーについては、ネットワーク セキュリティ グループを作って NIC に割り当てることはできません。
ドメイン転送
Azure Red Hat OpenShift では、CoreDNS が使用されます。 ドメイン転送を構成できます。 独自の DNS を仮想ネットワークに持ち込むことはできません。 詳細については、DNS 転送の使用に関するドキュメントを参照してください。
次の手順
アウトバウンド トラフィックについてと、Azure Red Hat OpenShift でエグレス用に何がサポートされているかについては、サポート ポリシーのドキュメントを参照してください。